k8s中下载镜像的凭据
如何创建secret
1.首先docker login到regesity,此时会在~/.docker/config.json生成配置如下
2.
a.cat ~/.docker/config.json|base64,将输出作为data.dockercfg中的内容编辑secret。
apiVersion: v1
kind: Secret
metadata:
name: regsecret
namespace: default
data:
.dockerconfigjson: ewoJImF1dGhjNWdlpHVnVaenB5Wld4aFFFeFdUa2xCVGtBeU1ERTMiCgkJfSwKCQkidXJlZy5rOHMueXVud2VpLnJlbGEubWUiOiB7CgkJCSJhdXRoIjogIloyRnZaM1Z2WkdWdVp6cHlaV3hoUUV4V1RrbEJUa0F5TURFMyIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDYuMS1jZSAobGludXgpIgoJfQp9
type: kubernetes.io/dockerconfigjson
b.直接通过文件生成(已测试)
kubectl create secret generic xxx-key \
--from-file=.dockerconfigjson=/root/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
c.命令行生成
kubectl create secret docker-registry xxx-key \
--docker-server=registry.xxxxxx.com \
--docker-username='xxxxxx' \
--docker-password='xxxxxx'
如何使用这个secret
1.在创建资源时指定
2.在命名空间的默认serviceaccout账户指定。
kubectl patch serviceaccount default -p "{"imagePullSecrets": [{"name": "image-pull-secret"}]}" -n
这里会多点东西,默认没有的