问题描述
在部署Calico网络组件时,它会拉取k8s.gcr.io/pause镜像。
即使初始化时指定私有镜像仓库,它还是会拉取k8s.gcr.io/pause镜像。(可能这与初始化并无关系)
问题原因
该镜像(pause)用于使多个容器运行在壹个POD中。该容器持有POD的网络命令空间,使用该容器获取各自POD的IP地址,并设置加入该POD的其他容器的网络命名空间。
解决办法
使用kubelet的–pod-infra-container-image选项指定pause镜像地址。
在CentOS 7中,可以修改/etc/sysconfig/kubelet配置文件,内容大致如下:
KUBELET_EXTRA_ARGS="--pod-infra-container-image='private-registry/foo/pause:<tag>'"
参考文献
bootstrap kubernetes from private registry #76155
What is the use of a pause image in Kubernetes?
Kubernetes/REFERENCE/kubelet