CentOS 7下Kubernetes 一直ContainerCreating

Posted Time-Traveler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

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

解决方式2:

搜索 rhsm 一番之后发现是centos的一个bug
在这里插入图片描述
链接如下: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 2>/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替代了,但是有问题,就产生了我们这个问题。

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

以上是关于CentOS 7下Kubernetes 一直ContainerCreating的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 Kubernetes应用部署指南 Kubeapps+Dashboard+Helm

kubernetes 集群部署

kubeadmin 部署(centos 7)

Kubernetes集群使用CentOS 7.6系统时kubelet日志含有“Reason:KubeletNotReady Message:PLEG is not healthy:”信息

Centos 7 在VBox下不能联网

Centos下Kubernetes+Flannel部署(新)