Kubernetes Pod 鏡像拉取策略
官方文檔:https://kubernetes.io/docs/concepts/containers/images/
• IfNotPresent:默認值,鏡像在宿主機上不存在時才拉取
• Always:每次創建 Pod 都會重新拉取一次鏡像
• Never: Pod 永遠不會主動拉取這個鏡像
# 查看已創建deployment的拉取策略
kubectl get deploy/nginx-deployment -o yaml | grep imagePull
imagePullPolicy: IfNotPresent
認證鏡像倉庫拉取方法
1、Node:修改需要認證的鏡像倉庫

{"insecure-registries": ["需要認證的倉庫地址"]}
2、Node:登錄鏡像倉庫(可提交項目鏡像到私有倉庫)
docker login 鏡像倉庫IP地址
3、Node:查看倉庫docker認證信息、並編碼
cat ~/.docker/config.json | base64 -w 0
4、Master:創建認證yaml文件、 .dockerconfigjson下就是Node config.json的編碼信息

apiVersion: v1 kind: Secret metadata: # 拉取鏡像策略定義名稱 name: registry-pull-secret data: .dockerconfigjson: ewoJImF1dGhzIjkfldsajkfldsajklfsJKLFJDAKLJKljkJjfkldsjkfdsaJKLFDASLjkljfklJFKDLHASKjkjfLfdsjaklfjdsaklFDSAJKLFDJSAKLFDSAjklfjdsaklf;jdaklfj;dsklajfkldsajfkld;ajkfld== type: kubernetes.io/dockerconfigjson
下面根據條件完成策略

apiVersion: v1 kind: Pod metadata: name: foo namespace: awesomeapps spec: containers: - name: foo image: janedoe/awesomeapp:v1 imagePullPolicy: IfNotPresent

apiVersion: v1 kind: Pod metadata: name: foo namespace: awesomeapps spec: containers: - name: foo image: janedoe/awesomeapp:v1 imagePullSecrets: - name: myregistrykey