「Kubernetes」- 使用calico插件时,拉取pause镜像失败

问题描述

在部署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