-
创建私有仓库认证Secret:
- 使用
kubectl create secret docker-registry
命令生成密钥,例如:kubectl create secret docker-registry regcred \ --docker-server=<私有仓库地址> \ --docker-username=<用户名> \ --docker-password=<密码> \ --namespace=<命名空间>
- 使用
-
配置Pod的imagePullSecrets:
- 在Pod的YAML中显式引用Secret:
spec: containers: - name: myapp image: <私有仓库地址>/镜像名:tag imagePullSecrets: - name: regcred
- 在Pod的YAML中显式引用Secret:
-
(可选)绑定ServiceAccount:
- 修改默认ServiceAccount,自动附加Secret:
apiVersion: v1 kind: ServiceAccount metadata: name: default imagePullSecrets: - name: regcred
- 修改默认ServiceAccount,自动附加Secret:
-
验证配置:
- 部署测试Pod并检查事件日志:
kubectl describe pod <pod名称> | grep -i 'pull'
- 确认无
ErrImagePull
错误,且镜像状态为Pulled
- 部署测试Pod并检查事件日志:
常见问题排查:
- 检查Secret与Pod是否在同一命名空间
- 确认docker-server地址包含协议头(如
https://
) - 节点需预先信任自签名证书(对于非公开CA签发的仓库)