通过Kubernetes配置集群内私有仓库进行镜像拉取,需以下核心步骤:
-
创建镜像拉取凭证Secret
- 使用
kubectl create secret docker-registry <secret-name>
生成包含私有仓库认证信息的Secret(如用户名、密码、仓库地址)。 - 示例:
kubectl create secret docker-registry my-registry-secret --docker-server=registry.example.com --docker-username=admin --docker-password=xxxx
- 使用
-
绑定Secret到工作负载
- 在Pod/Deployment的
spec.template.spec
中添加imagePullSecrets
字段,引用创建的Secret。 - 示例YAML片段:
imagePullSecrets: - name: my-registry-secret
- 在Pod/Deployment的
-
配置节点Docker信任私有仓库(如使用自签名证书)
- 修改节点
/etc/docker/daemon.json
,添加insecure-registries
或配置CA证书。 - 需重启Docker服务并确保所有节点同步配置。
- 修改节点
-
验证与故障排查
- 执行
kubectl describe pod <pod-name>
检查Events
中的拉取错误。 - 常见问题:Secret命名空间不匹配、网络不通、证书未信任、镜像路径错误。
- 执行
注意安全实践:避免明文密码,建议通过CI/CD工具动态注入Secret,或集成Harbor等仓库的Robot Account机制实现最小权限控制。