k8s拉取私有仓库镜像:通过config.json文件或命令行来创建secret(docker-registry)
通過config.json文件來創建
kubectl create secret generic xxx-key \--from-file=.dockerconfigjson=/root/.docker/config.json \--type=kubernetes.io/dockerconfigjson背景說明:
imagePullSecret資源將Secret提供的密碼傳遞給kubelet從而在拉取鏡像前完成必要的認證過程,簡單說就是你的鏡像倉庫是私有的,每次拉取是需要認證的。
配置說明:
①創建docker-registry類型的Secret對象,并在定義pod資源時明確通過"imagePullSecrets"字段來申明使用哪個私鑰去認證;
②創建docker-registry類型的Secret對象,然后把它添加到某個ServiceAccount對象中,使用了這個ServiceAccount對象創建出來的pod就自然而然通過認證獲取到鏡像;
第一種方式較為常見,簡單記錄一下。
具體配置:
這里創建Secret對象有兩種方式,各有千秋。
方式一:通過命令行直接創建Secret
kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL例子:
kubectl create secret docker-registry xxx-key \--docker-server=registry.xxxxxx.com \--docker-username='xxxxxx' \--docker-password='xxxxxx'最后在yaml文件中使用這個創建出來的Secret:
apiVersion: v1 kind: Pod metadata:name: foonamespace: awesomeapps spec:containers:- name: fooimage: janedoe/awesomeapp:v1imagePullSecrets:- name: xxx-key方式二:通過現存的docker認證文件來創建Secret
kubectl create secret generic xxx-key \--from-file=.dockerconfigjson=/root/.docker/config.json \--type=kubernetes.io/dockerconfigjson注意:config.json文件需要在主機上通過docker login 的方式登錄后,才會生成。這種方式有一個好處,就是如果有多個鏡像倉庫,都先存在于一個config.json文件中,然后通過命令打入Secret。
接下來,在yaml文件中引用,同上,略。
[參考鏈接:
https://www.cnblogs.com/ding2016/p/13384799.html
http://docs.kubernetes.org.cn/554.html
總結
以上是生活随笔為你收集整理的k8s拉取私有仓库镜像:通过config.json文件或命令行来创建secret(docker-registry)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node.js中package.json
- 下一篇: postgresql pgsql登录及创