Kubernetes: Terapkan pembaruan bergulir untuk set daemon

Dibuat pada 4 Mar 2016  ·  3Komentar  ·  Sumber: kubernetes/kubernetes

Hai,

Maaf karena melakukannya dalam urutan yang salah seperti yang disebutkan di sini: https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md#contributing -a-patch

Saya melakukan #22439 untuk mengatasi masalah ini (di sisi kubectl)

Kebutuhannya adalah untuk dapat memperbarui set daemon dalam satu baris perintah.
Pada dasarnya itu setara dengan melakukan:

kubectl delete  -f dsfile  --cascade=false
kubectl create   -f dsfile
for pod in pods
kubectl  delete pod
wait for delete

EDIT: @bgrant0607 disarankan untuk memperbarui ds alih-alih menghapus / membuat ulang

areapp-lifecycle areworkload-apdaemonset prioritbacklog siapps

Komentar yang paling membantu

1.6 termasuk upgrade bergulir untuk DaemonSets.

Semua 3 komentar

15310 mencakup persyaratan untuk DaemonSet untuk beralih dari beta ke GA, termasuk orkestrasi pembaruan sisi server. Saya lebih suka melakukan itu, tetapi ini rumit, dan kami tidak berencana untuk mengerjakannya di 1.3.

Jika Anda ingin memberikan kontribusi solusi sisi klien, meskipun itu bukan arah jangka panjang yang kami pikirkan (#12143), seharusnya tidak memperkenalkan perintah baru. Sebagai gantinya, kita harus membuat kubectl rolling-update bekerja untuk DaemonSet (dan juga ReplicaSet, jika Anda ingin).

https://github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/rollingupdate.go

Karena rolling-update tidak menentukan jenis sumber daya ( replicationcontroller ), kita harus mengasumsikan rc secara default. Selain itu, saya pikir sintaksnya secara alami dapat diperluas ke tipe pengontrol lain, menggunakan sintaks tipe/nama.

Sebagai contoh:

kubectl rolling-update daemonset/mydaemon --image=image:v2

Selain perintah itu sendiri, saya tidak mengharapkan prosedur pembaruan untuk membagikan kode.

Perintah rolling-update saat ini membuat ReplicationController baru dan secara bertahap meningkatkannya sambil menurunkan skala yang lama. Dalam kasus --image , ia melakukan "tarian penghapusan" di akhir untuk mengubah nama kembali ke RC asli -- ia menghapus yang asli, membuat RC lain dengan nama yang sama, dan kemudian menghapus RC sementara yang digunakan untuk meluncurkan gambar baru.

Dalam kasus DaemonSet, kubectl akan melakukan yang sebaliknya: ia akan memperbarui DaemonSet asli dan menghapus pod satu per satu untuk menggantikannya. Jika --image ditentukan, itu hanya akan dilakukan di akhir. Jika nama DaemonSet baru ditentukan (misalnya, kubectl rolling-update daemonset/mydaemon-v1 -f mydaemon-v2.yaml ), DaemonSet baru akan dibuat pada akhir proses pembaruan, dan yang asli akan dihapus. Kita harus memastikan DaemonSet menanganinya dengan baik, atau kita perlu menghapus DaemonSet asli sebelum membuat yang baru (mirip dengan proposal saya di #7402).

cc @mikedanese @davidopp @madhusudancs @janetkuo @kargakis @pwittrock @gmarek

1.6 termasuk upgrade bergulir untuk DaemonSets.

Terima kasih atas pembaruannya! 👍

Apakah halaman ini membantu?
0 / 5 - 0 peringkat