Eu tenho o seguinte controlador de replicação no Kubernetes no GKE:
apiVersion: v1
kind: ReplicationController
metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 2
selector:
app: myapp
deployment: initial
template:
metadata:
labels:
app: myapp
deployment: initial
spec:
containers:
- name: myapp
image: myregistry.com/myapp:5c3dda6b
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: myregistry.com-registry-key
Agora, se eu disser
kubectl rolling-update myapp --image=us.gcr.io/project-107012/myapp:5c3dda6b
a atualização sem interrupção é executada, mas não é necessário repetir. Por quê?
latest
, não faça isso. O mais recente puxará a imagem, bem, mais recentemente, com a tag mais recente. O que você quer é uma linha SemVer. ~ 1.2.3 por exemplo. isso puxará imagens com tags entre o intervalo de> = 1.2.3 e <1.3.0. Desde que o fornecedor da imagem siga o SemVer, você sabe (e essa é a parte importante) que nenhuma alteração reversa foi adicionada (de propósito) e que nenhum novo recurso foi adicionado (possível preocupação com a segurança). Por favor, nunca use latest
em sistemas de produção.
imagePullPolicy
campo.