Kapsülünüzü bir yetkisiz dönemle (örneğin, kapsayıcı başlangıç süresine ve görüntü boyutuna bağlı olarak 30 saniye veya daha fazla) yapılandırabilir ve ayarlayabilirsiniz "imagePullPolicy: "Always"
. Ve kullanın kubectl delete pod pod_name
. Yeni bir kapsayıcı oluşturulacak ve en son görüntü otomatik olarak indirilecek, ardından eski kapsayıcı sonlandırılacaktır.
Misal:
spec:
terminationGracePeriodSeconds: 30
containers:
- name: my_container
image: my_image:latest
imagePullPolicy: "Always"
Şu anda otomatik derlemeler ve resim etiketleme için Jenkins kullanıyorum ve şuna benzer:
kubectl --user="kube-user" --server="https://kubemaster.example.com" --token=$ACCESS_TOKEN set image deployment/my-deployment mycontainer=myimage:"$BUILD_NUMBER-$SHORT_GIT_COMMIT"
Başka bir numara da başlangıçta çalıştırmaktır:
kubectl set image deployment/my-deployment mycontainer=myimage:latest
ve sonra:
kubectl set image deployment/my-deployment mycontainer=myimage
Aslında, sürekli güncellemeyi tetikleyecektir, ancak imagePullPolicy: "Always"
ayarladığınızdan da emin olun .
Güncelleme:
Gördüğüm başka bir numara, resim adını değiştirmek zorunda olmadığın yerde, örneğin bir sürekli güncellemeyi tetikleyecek bir alanın değerini değiştirmektir terminationGracePeriodSeconds
. Bunu aşağıdaki gibi bir yama kullanarak kubectl edit deployment your_deployment
veya kullanarak yapabilirsiniz kubectl apply -f your_deployment.yaml
:
kubectl patch deployment your_deployment -p \
'{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'
Her zaman sayı değerini değiştirdiğinizden emin olun.