Anda dapat mengonfigurasi pod Anda dengan masa tenggang (misalnya 30 detik atau lebih, bergantung pada waktu mulai container dan ukuran gambar) dan disetel "imagePullPolicy: "Always". Dan gunakan kubectl delete pod pod_name. Penampung baru akan dibuat dan gambar terbaru diunduh secara otomatis, kemudian penampung lama dihentikan.
Contoh:
spec:
terminationGracePeriodSeconds: 30
containers:
- name: my_container
image: my_image:latest
imagePullPolicy: "Always"
Saat ini saya menggunakan Jenkins untuk pembuatan otomatis dan penandaan gambar dan tampilannya seperti ini:
kubectl --user="kube-user" --server="https://kubemaster.example.com" --token=$ACCESS_TOKEN set image deployment/my-deployment mycontainer=myimage:"$BUILD_NUMBER-$SHORT_GIT_COMMIT"
Trik lain adalah menjalankan awal:
kubectl set image deployment/my-deployment mycontainer=myimage:latest
lalu:
kubectl set image deployment/my-deployment mycontainer=myimage
Ini sebenarnya akan memicu pembaruan bergulir tetapi pastikan Anda juga telah imagePullPolicy: "Always"mengaturnya.
Memperbarui:
Trik lain yang saya temukan, di mana Anda tidak perlu mengubah nama gambar, adalah mengubah nilai bidang yang akan memicu pembaruan berkelanjutan, seperti terminationGracePeriodSeconds. Anda dapat melakukan ini menggunakan kubectl edit deployment your_deploymentatau kubectl apply -f your_deployment.yamlatau menggunakan tambalan seperti ini:
kubectl patch deployment your_deployment -p \
'{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'
Pastikan Anda selalu mengubah nilai angka.