共计 1994 个字符,预计需要花费 5 分钟才能阅读完成。
环境:
kubernetes: v1.10.4
docker: 17.03.2-ce
私有仓库使用的是 Harbor
我们在 Master 上面创建一个私有凭证
kubectl create secret docker-registry regsecret \ | |
--docker-server=<your-registry-server>\ | |
--docker-username=<your-name>\ | |
--docker-password=<your-pword> \ | |
--docker-email=<your-email> |
参数 | 说明 |
---|---|
regsecret | 此参数作为凭证 id |
<your-registry-server> | 你的私有仓库地址 |
<your-name> | 用户名 |
<your-pword> | 密码 |
<your-email> |
这里我以阿里云私有仓库为示例, 执行下面的命令创建私有凭证
kubectl create secret docker-registry regsecret \ | |
--docker-server=registry.cn-beijing.aliyuncs.com\ | |
--docker-username=1500698928@qq.com\ | |
--docker-password= 你的密码 \ | |
--docker-email=1500698928@qq.com |
查看创建的凭证,输出为 yml
kubectl get secret regsecret --output=yaml
查看创建的凭证,输出为 json
kubectl get secret regsecret --output=json
输出一下信息
{ | |
"apiVersion": "v1", | |
"data": {".dockerconfigjson": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, | |
"kind": "Secret", | |
"metadata": { | |
"creationTimestamp": "2018-06-11T06:25:43Z", | |
"name": "regsecret", | |
"namespace": "default", | |
"resourceVersion": "4543", | |
"selfLink": "/api/v1/namespaces/default/secrets/regsecret", | |
"uid": "44dc2b93-6d40-11e8-8136-000c2925c79d" | |
}, | |
"type": "kubernetes.io/dockerconfigjson" | |
} |
该 .dockerconfigjson
字段的值是 Docker 凭据的 base64 表示形式
我们可以通过命令转化为可读格式
kubectl get secret regsecret --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d
输出
{"auths":{"registry.cn-beijing.aliyuncs.com":{"username":"1500698928@qq.com","password":"xxxxxxxx","email":"1500698928@qq.com","auth":"xxxxxx"}}}
在 Pod 中使用凭证
apiVersion: v1 | |
kind: Pod | |
metadata: | |
name: private-reg | |
spec: | |
containers: | |
- name: private-reg-container | |
image: registry.cn-beijing.aliyuncs.com/typ/nginx_alpine:1.1 | |
imagePullSecrets: | |
- name: regsecret |
images 换成你私有仓库的镜像
nam:regsecret 是你刚才创建的凭证
通过查看日志可以发现已经成功下载了私有仓库的镜像
Events: | |
Type Reason Age From Message | |
---- ------ ---- ---- ------- | |
Normal Scheduled 4m default-scheduler Successfully assigned private-reg to ddu-3 | |
Normal SuccessfulMountVolume 4m kubelet, ddu-3 MountVolume.SetUp succeeded for volume "default-token-42nsz" | |
Normal Pulling 4m kubelet, ddu-3 pulling image "registry.cn-beijing.aliyuncs.com/typ/nginx_alpine:1.1" | |
Normal Pulled 2m kubelet, ddu-3 Successfully pulled image "registry.cn-beijing.aliyuncs.com/typ/nginx_alpine:1.1" |
正文完