使用k3s搭建的集群,进行pod创建或者缺省pod创建的时候都可能会出现pod状态处于ContainerCreating的情况,常见的原因之一是镜像拉取失败。最简单的方式就是手动加载,由于k3s缺省使用containerd,这里同时总结一下containerd和docker的手动镜像加载方式。
现象:pod处于ContainerCreating状态
缺省安装的集群,通过kubectl get pods -A获得所有pod的信息是发现,所有的pod都是pending状态,结果如下所示。
[root@host121 k3s]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-d798c9dd-mpbpc 0/1 ContainerCreating 0 81m
kube-system helm-install-traefik-vkwnp 0/1 ContainerCreating 0 81m
kube-system local-path-provisioner-58fb86bdfd-fczsg 0/1 ContainerCreating 0 81m
kube-system metrics-server-6d684c7b5-lx7fk 0/1 ContainerCreating 0 81m
[root@host121 k3s]#
原因确认:failed to pull image "k8s.gcr.io/pause:3.1
以coredns的pod为例确认一下pod的详细信息
[root@host121 k3s]# kubectl describe pods coredns-d798c9dd-mpbpc -n kube-system
Name: coredns-d798c9dd-mpbpc
Namespace: kube-system
Priority: 0
Node: host123/192.168.163.123
Start Time: Fri, 29 Nov 2019 16:58:26 -0500
Labels: k8s-app=kube-dns
pod-template-hash=d798c9dd
Annotations: <none>
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/coredns-d798c9dd
Containers:
coredns:
Container ID:
Image: coredns/coredns:1.6.3
Image ID:
Port