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用户