创建密钥
在使用 弹性容器集群 部署容器时,首先需要把镜像上传到 弹性容器集群 同步开通的镜像仓库,
本节介绍 弹性容器集群 镜像仓库的密钥管理及在容器中使用密钥。
前提条件
获取镜像仓库连接地址
-
登录Alaya NeW官网,点击“产品 > 存储 > 镜像仓库”,进入镜像仓库页面。
-
在右上角选择开通弹性容器集群和开通镜像仓库的智算中心,然后点击“私有镜像”页签,查看镜像详情信息。

获取上图所示的访问地址部分即为镜像仓库连接地址,无需后面的项目名称信息。
获取用户名和密码
-
方式一:在开通镜像仓库以后,用户名和密码会以短信的形式发送。
-
方式二:如果您没有收到短信提醒或者误删了短信,您可以在“访问管理”页面重置用户名和密码。
-
在页面右上角单击用户头像,然后在下拉列表选择“访问管理”(如下图①)。
-
在“访问管理”页面选择“镜像仓库”页签(如图②),然后单击目标智算中心“操作”列的“重置”(如图③),重置镜像仓库的用户名和密码。

-
重置结果如下图所示。

-
命令行方式创建密钥
使用如下命令创建密钥,注意替换如下内容:
- your-secret-name: 替换成您自己定义的密钥名称
- your-username: 替换成您自己的镜像仓库用户名
- your-password: 替换成您自己的镜像仓库密码,如果有特殊字符,用''括起来
- your-harbor-domain: 替换成您自己的镜像仓库域名
- your-namespace: 替换成您自己使用该密钥的命名空间
kubectl create secret docker-registry your-secret-name \
--docker-username=your-username \
--docker-password='your-password' \
--docker-server=your-harbor-domain \
--namespace=your-namespace
K8S资源方式创建密钥
生成配置json
示例:
{
"auths": {
"镜像仓库访问域名": {
"username": "your-username",
"password": "your-harbor-password",
"email": "your-email"
}
}
}
其次 对上述json文件进行base64编码
- linux
- windows
- 在线编码
base64 config.json > encode-config.json
certutil -encode config.json encode-config.json
可以使用在线编码工具:
https://www.bejson.com/enc/base64/
最后 生成k8s的secret资源
其中 .dockerconfigjson 的值即上步中,编码后的文件内容
示例:
apiVersion: v1
kind: Secret
metadata:
name: ydyd-harbor-secret
namespace: your-namespace
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ewogICAgImF***********************************zd29yZCI6ICJZQVNETmhiZGFzIT8jMTJRIiwKICAgICAgICAgICAgImVtYWlsIjogInpoYW5ncG9AemV0eXVuLmNvbSIKICAgICAgICB9CiAgICB9Cn0K
使用密钥
在部署容器时,使用配置的密钥拉取镜像
示例
apiVersion: v1
kind: Pod
metadata:
name: your-pod-name
namespace: your-namespace
spec:
imagePullSecrets:
- name: your-harbor-secret
containers:
- name: your-contain-name
image: your-image
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /mnt/test
name: your-volume-name
command: ['/bin/bash', '-c', 'while true; do sleep 30; done']
volumes:
- name: your-volume-name
persistentVolumeClaim:
claimName: your-pvc-name