Kubernetes创建第一个pod一直提示ContainerCreating问题

在自己的虚拟上刚经历过部署时候的坑,特别激动终于到了k8s创建正常使用的过程。

目前的Kubernetes的架构:
三台服务器

  • 10.178作为master
  • 10.179为node1
  • 10.181为node2

k8s创建第一个pod一直提示ContainerCreating问题

下面开始创建第一个pod,命令如下。

问题发现:
创建一个nginx服务pod,实例为2

kubectl run nginx --image=nginx --port=80 --replicas=2

k8s创建第一个pod一直提示ContainerCreating问题

可以看到生成两个实例并显示ContainerCreating中,以为正在创建此实例。过了大概五分钟,过来看还是在这个状态,就感觉很不对劲了。

查看这个两个的报错日志提示
k8s创建第一个pod一直提示ContainerCreating问题
很显然这个报错日志得不到任何解决方法的问题。于是各种度娘,网上的资料也是非常的杂。

找到一个很好用的命令,这个命令可以查看创建pod的详细内容及创建结果
格式:kubectl describe pod {实例名称}

kubectl describe pod nginx-3449338310-p5vfv

k8s创建第一个pod一直提示ContainerCreating问题

从图上我们可以知道创建pod的过程在pull镜像的时候失败pull的地址是registry.access.redhat.com/rhel7/pod-infrastructure:latest1\
#此处的latest1是我为了还原问题特意改成的,默认都是latest
为什么会去这个仓库下载镜像呢,原因在这里,我们看node节点的配置文件一般路径都为
vim /etc/kubernetes/kubelet
k8s创建第一个pod一直提示ContainerCreating问题
上面定义了要去这个仓库下载,知道了这个,我们也可以把它改为我们自己的仓库了。此处不做修改。
再看第二个报错信息
k8s创建第一个pod一直提示ContainerCreating问题
这里的报错很明显再找一个renhat的ca证书,未能在这个路径下找到证书。

解决方法:

1、在k8s集群的每台服务都运行
yum install *rhsm* -y
运行之后/etc/docker/目录下回多出certs.d 目录
k8s创建第一个pod一直提示ContainerCreating问题

然后我们进入/etc/docker/certs.d/registry.access.redhat.com/ 路径下查看
k8s创建第一个pod一直提示ContainerCreating问题
发现redhat-ca.crt 是一个软连接,这个文件关联至/etc/rhsm/ca/redhat-uep.pem这个文件,然后进入/etc/rhsm/ca 我们来看一下这个文件是否存在

k8s创建第一个pod一直提示ContainerCreating问题
#此处是为了还原问题故意加了.bak,一般情况是这个目录下是没有文件的。

2、

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
执行这两条命令会生成这个文件。

k8s创建第一个pod一直提示ContainerCreating问题

#注意此处是在node1节点上面的操作
之后我们在node节点重启一下服务
systemctl restart kubelet
node2同样的操作

之后我们在返回master查看pod的状态
k8s创建第一个pod一直提示ContainerCreating问题
kubectl describe pod nginx-3449338310-jcgzl

k8s创建第一个pod一直提示ContainerCreating问题

可以看到已经启动成功了。由于本人刚开始自学,一些细节还有底层的知识还没来及学习,希望与各位大神共同学习,也希望这篇文章对您有所帮助

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐