拉取镜像时未指定账户和密码通常是因为需要访问的镜像仓库启用了认证,但 Kubernetes 默认配置中未提供访问凭据。要解决此问题,可以按照以下步骤配置镜像仓库的认证信息:
1. 创建 Kubernetes Secret
为镜像仓库配置访问凭据,使用 kubectl
创建一个类型为 docker-registry
的 Secret。
kubectl create secret -n kubesphere-devops-system docker-registry my-registry-secret \
--docker-server=registry.flow.cn \
--docker-username=<your-username> \
--docker-password=<your-password> \
--docker-email=<your-email>
- 参数说明:
--docker-server
:镜像仓库的地址,例如registry.flow.cn
。--docker-username
:登录仓库的用户名。--docker-password
:登录仓库的密码。--docker-email
:邮箱地址(可以是任意值,不强制验证)。
2. Pod 单独配置
修改 CronJob
的 spec.template.spec
配置,添加 imagePullSecrets
字段,指定刚创建的 Secret 名称。
更新后的 CronJob 配置如下:
kind: CronJob
apiVersion: batch/v1
metadata:
name: devops
namespace: kubesphere-devops-system
labels:
app: devops-pipelinerun-gcjobs
app.kube