大家好,我是Linux运维工程师 Linke 。技术过硬,从不挖坑~
k8s集群拉取私有仓库镜像,需要在对应的 namespaces 中启动一个 secret,方法如下:
例如要在一个 java-app 的 namespace 中使用 registry.test.cn 私有仓库中的镜像启动 pod ,登录仓库的用户是 ops , 密码是 ops123123 ,那么我们可以创建一个 secret ,下面例子中的 secret 名称叫 login-registry(这个随便起个什么名称都行)
kubectl create secret \
docker-registry login-registry \
--docker-server=registry.test.cn \
--docker-username=ops \
--docker-password=ops123123 \
-n java-app
然后再 yaml 文件中加入以下内容,位置和 containers 同级:
imagePullSecrets:
- name: login-registry
如图片中的位置
查看是否创建
kubectl get secret -n java-app
每个任务节点也需要加私有镜像地址,否则拉不下来镜像:
cat > /etc/docker/daemon.json << EOF
{
"insecure-registries" : ["registry.gag.cn"]
}
EOF
systemctl restart docker