前提条件
登录到阿里云控制台
拥有阿里云的ACR服务
创建一个命名空间
获取仓库的访问凭证(可以设置固定密码)
例如
sudo docker login --username=yourAliyunAccount registry.cn-guangzhou.aliyuncs.com
在K8s集群中创建一个secret
使用kubectl命令行工具,在集群中创建一个用于认证的Secret。
此Secret将由Kubernetes用来与阿里云镜像服务注册表认证并拉取私有镜像。
示例:
kubectl create secret docker-registry <secret-name> \
--docker-server=<your-registry-server> \
--docker-username=<your-username> \
--docker-password=<your-password> \
--docker-email=<your-email> \
--namespace=<your-namespace>
其中,<secret-name>是你创建的 secret名字,
<your-registry-server> 是你的私有仓库地址,如 registry.cn-guangzhou.aliyuncs.com/xxxx
<your-username> 是你的用户名字,同上 yourAliyunAccount
<your-password> 是你的访问仓库的密码
<your-email> 是你的邮箱,可不填
<your-namespace> Kubernetes中的命名空间,如果你希望Secret在全局范围内可用,可以使用 default
命名空间。
执行:
配置pod的yaml文件使用secret
创建一个名为pod1.yaml文件
apiVersion: v1
kind: Pod
metadata:
name: <pod-name>
namespace: <your-namespace>
spec:
containers:
- name: <container-name>
image: registry.cn-guangzhou.aliyuncs.com/xxxx/myapp:1.0
imagePullSecrets:
- name: <secret-name>
笔者这里拉取的是镜像是myapp:1.0
应用yaml文件
kubectl apply -f pod1.yaml
查看pod详情
kubectl get pod
kubectl describe pod test-secret-pod
可以看到,pod成功运行并且使用myapp:1.0作为镜像