CentOS 7下Kubernetes 一直ContainerCreating


前言:

新手上路,体验一下k8s的魅力,未想出师不利:
CentOS 7下Kubernetes :kubectl create -f xxx.yaml之后显示了created,不过一直是处于ContainerCreating状态,果断采用:
kubectl describe pod xxx,结果显示:

Error syncing pod, skipping: failed to “StartContainer” for “POD” with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request. details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)

搜索找到的头几个中文搜索结果做法大同小异,安装rhsm系列的包

解决方式:

yum install -y *rhsm*

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpmwget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

执行之后重试还是不行,并且还报错了,也有可能到这一步就已经解决问题了。
(kubectl create -f xxx.yaml的时候如果存在pod需要先删掉:kubectl delete -f xxx.yaml)

解决方式2:

搜索 rhsm 一番之后发现是centos的一个bug, ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210501190332222.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FMYWtlcnM=,size_16,color_FFFFFF,t_70) 链接如下:https://bugs.centos.org/view.php?id=14785 有兴趣的小伙伴可以去看看。然而我在网上找到了另一个解决方案:
 openssl s_client -showcerts -servername registry.access.redhat.com -connect registry.access.redhat.com:443 /dev/null | openssl x509 -text > /etc/rhsm/ca/redhat-uep.pem

错误原因:

rhsm系列是redhat红帽的订阅服务相关包,centos是重编译redhat发布得到的,所以也需要用到rhsm。报错信息里报告的缺的证书位置,其实只是个符号链接,真正缺的证书位置在 /etc/rhsm/ca/redhat-uep.pem 。 某个版本以前这个证书是通过 python-rhsm-certificates包提供,但centos 7 里提示这个包被 subscription-manager-rhsm-certificates替代了,但是有问题,就产生了我们这个问题。

一步一个脚印,脚抬起来的时候才发现这个脚印有点深。

你可能感兴趣的:(k8s)