K8s常见问题分析&解决(docker问题)

1: k8s集群内的容器,只能在其所在的节点上curl访问,其他任何主机上无法访问容器占用的端口

详细描述:
    k8s集群内的容器,只能在其所在的节点上curl访问,其他任何主机上无法访问容器占用的端口
解题思路:
    无
原因分析:
    主机中网络包转发问题
解决步骤:
    vim /etc/sysctl.conf
    找到 net.ipv4.ip_forward=1 去掉注释
    备注: 主机必须重启才能生效

2:私有仓库镜像拉取问题,提示需要https协议

详细描述:
    私有仓库镜像拉取问题,提示需要https协议
    Get https://IP:Port/v2/: http: server gave HTTP response to HTTPS client
解题思路:
    无
原因分析:
    未将私有镜像仓库地址配置到docker中的registries
解决步骤:
    在/etc/docker/daemon.json添加信息
    {"insecure-registries":["IP:Port"]}    #将这一行添加到第一行
    重启docker服务
    systemctl restart docker.service

3: 下载镜像出现问题,提示/etc/rhsm/ca/redhat-uep.pem no file or dictory

详细描述:
    下载镜像出现问题,提示/etc/rhsm/ca/redhat-uep.pem no file or dictory
解题思路:
    无
原因分析:
    缺少秘钥文件
解决步骤:
    1: yum -y install *rhsm*  安装依赖
    2:下载python-rhsm-certificates软件并生成密钥文件
    wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-    1.19.10-1.el7_4.x86_64.rpm
    rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
    重新拉取镜像即可

4: 容器相关的错误问题

详细描述:
    容器相关的错误问题;
    尝试关闭容器:
    docker报相应的错误:rpc error: code = 14 desc = grpc: the connection is unavailable
    尝试停止容器:
    Error response from daemon: Cannot stop container <container-name>: Cannot kill
    尝试强制删除容器(-f):
    [root@k8s-node-1 ~]# docker rm -f 7119f8f5feef
    Error response from daemon: Could not kill running container
解题思路:
    无
原因分析:
    无
解决步骤:
    使用docker-containerd命令以debug模式调整容器(在不能删除容器的node上执行)
    命令大致如下:
    docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir     /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --debug
    调试后容器的状态会变为未开启状态,进而尝试删除容器,容器删除成功

5:kubelet提示DNS错误信息

详细描述:
    kubelet提示DNS错误信息
    kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Fail
解题思路:
    无
原因分析:
    无
解决步骤:
    编辑/etc/kubernetes/kubelet 配置文件中添加以下内容
    KUBE_ARGS="--cluster-dns=10.0.0.110 --cluster-domain=cluster.local"
    重启 systemctl daemon-reload;  systemctl restart kubelet

6: docker run 报错,文件系统不支持

详细描述:
    docker run 报错,文件系统不支持
    /usr/bin/docker-current: Error response from daemon: error creating overlay mount to 	/var/lib/docker/overlay2/7b4a1ef8a539785fde3fa4cabc4bb9d90967a30calid argument.
解题思路:
    无
原因分析:
    因为采用了overlay2文件系统,而系统默认只能识别overlay文件系统,需要我们更新文件系统
解决步骤:
    systemctl stop docker       #停掉docker服务
    rm -rf /var/lib/docker        #注意会清掉docker images的镜像
    vi /etc/sysconfig/docker-storage   //将文件里的overlay2改成overlay即可
    DOCKER_STORAGE_OPTIONS="--storage-driver overlay2 "  #修改前
    DOCKER_STORAGE_OPTIONS="--storage-driver overlay "   #修改后
    vi /etc/sysconfig/docker           //去掉option后面的--selinux-enabled
    重启
    systemctl start docker

 7: docker 容器处于dead状态,使用删除命令无法删除

详细描述:
    docker 容器处于dead状态,使用删除命令无法删除
解题思路:
    无
原因分析:
    未知
解决步骤:
    尽量避免快速删除容器,当前没有比较好的办法,除非重启系统

 

8:K8s使用nfs当作挂载目录,出现创建pod失败报错

 

详细描述:
    K8s使用nfs当作挂载目录,出现创建pod失败报错
解题思路:
    无
原因分析:
    可能因为nfs的权限问题,比如pod运行rabbitmq应用,默认情况下,使用官方的rabbitmq运行的程序用户是rabbitmq,对nfs挂载的目录可能没有操作写入权限导致出错
解决步骤:
    针对上面的demo例子解决办法:
    在nfs服务器上新建一个目录,并且将这个目录权限设置为rabbitmq用户

 

 

 

### 实现单线复用所需 VLAN 交换机的数量 为了实现单线复用,理论上只需要一台支持 VLAN 配置的网管交换机即可完成基本需求[^1]。通过合理规划 VLAN ID 和端口设置,在同一物理链路上承载多个逻辑网络流量。 对于简单的应用场景,如家庭或小型办公室环境,仅需部署单一台具备 VLAN 功能的交换设备便能达成目标。该设备应能够处理至少两个不同的 VLAN 标签,以便分离不同类型的数据流(例如 WLAN 流量与 LAN 流量),从而提高网络安全性和管理效率[^2]。 然而,在某些特定情况下,比如需要跨越多楼层传输信号并保持良好性能时,则可能考虑采用两台或多台 VLAN 交换机构建更复杂的拓扑结构。这时可以通过 TRUNK 端口互联各层楼之间的交换机,并确保每条线路上传输的信息都带有相应的 VLAN Tag 来区分不同业务类型的通信路径[^3]。 #### 使用最少 VLAN 交换机的设计方案 假设存在如下场景: - 用户希望在同一根双绞线上同时传送互联网访问请求、IPTV 视频服务以及其他内部局域网通讯; - 整个项目位于一栋二层建筑内; 针对上述条件下的最小化硬件投入策略可以描述为: 安装一台高性能的企业级智能可堆叠式千兆以太网交换机作为核心节点。此型号应当拥有足够的接口数目满足现有终端接入需求的同时预留一定扩展空间。它负责创建和分配各个独立运作却又共享同一线缆资源的工作区&mdash;&mdash;即定义若干个相互隔离但又可通过路由互通的不同子网段。具体操作上就是给每一个工作区域指定唯一的 VLAN 编号,再把对应计算机或其他联网装置连接到相应标记过的端口中去。 ```bash # 假设使用命令行界面配置交换机 configure terminal vlan 10 name Internet_Access interface GigabitEthernet0/1 switchport mode access switchport access vlan 10 exit ! vlan 20 name IPTV_Services interface GigabitEthernet0/2 switchport mode access switchport access vlan 20 exit ! ... end write memory ``` 这种做法不仅减少了额外购置其他专用路由器的成本支出,而且简化了整体架构布局,使得后续运维更加便捷高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值