背景說明:
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: foo namespace: awesomeapps spec: containers: - name: foo image: janedoe/awesomeapp:v1 imagePullSecrets: - 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文件中引用,同上,略。
結束.