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_deployment
atau kubectl apply -f your_deployment.yaml
atau menggunakan tambalan seperti ini:
kubectl patch deployment your_deployment -p \
'{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'
Pastikan Anda selalu mengubah nilai angka.