官方文档:https://kubernetes.io/docs/concepts/containers/images/nginx
• IfNotPresent:默认值,镜像在宿主机上不存在时才拉取
• Always:每次建立 Pod 都会从新拉取一次镜像
• Never: Pod 永远不会主动拉取这个镜像docker
# 查看已建立deployment的拉取策略
kubectl get deploy/nginx-deployment -o yaml | grep imagePull
imagePullPolicy: IfNotPresentjson
一、Node:修改须要认证的镜像仓库 vim
{"insecure-registries": ["须要认证的仓库地址"]}
二、Node:登陆镜像仓库(可提交项目镜像到私有仓库)api
docker login 镜像仓库IP地址
三、Node:查看仓库docker认证信息、并编码app
cat ~/.docker/config.json | base64 -w 0
四、Master:建立认证yaml文件、 .dockerconfigjson下就是Node config.json的编码信息ide
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