Kubernetes: تنفيذ التحديث المتداول لمجموعات الخفي

تم إنشاؤها على ٤ مارس ٢٠١٦  ·  3تعليقات  ·  مصدر: kubernetes/kubernetes

أهلا،

آسف للقيام بذلك بالترتيب الخاطئ كما هو مذكور هنا: https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md#contributing -a-patch

فعلت # 22439 لمعالجة هذه المشكلة (على جانب kubectl)

الحاجة إلى أن تكون قادرًا على تحديث مجموعة خفية في سطر أوامر واحد.
يكافئ بشكل أساسي القيام بما يلي:

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

تحرير: اقترح @ bgrant0607 تحديث ds بدلاً من delte / إعادة إنشاء

areapp-lifecycle areworkload-apdaemonset prioritbacklog siapps

التعليق الأكثر فائدة

1.6 يتضمن ترقيات متجددة لـ DaemonSets.

ال 3 كومينتر

يغطي 15310 متطلبات DaemonSet للانتقال من الإصدار التجريبي إلى GA ، بما في ذلك تنسيق التحديث من جانب الخادم. أفضل بذل جهد في ذلك ، لكنه صعب ، ولا نخطط للعمل على ذلك في 1.3.

إذا كنت ترغب في المساهمة في حل من جانب العميل ، على الرغم من أن هذا ليس الاتجاه طويل المدى الذي يدور في ذهننا (# 12143) ، فلا ينبغي أن يقدم أمرًا جديدًا. بدلاً من ذلك ، يجب أن نجعل kubectl rolling-update يعمل مع DaemonSet (و ReplicaSet أيضًا ، إذا كنت مائلاً جدًا).

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

نظرًا لأن rolling-update لا يحدد نوع المورد ( replicationcontroller ) ، يجب أن نفترض rc افتراضيًا. بخلاف ذلك ، أعتقد أن بناء الجملة قابل للتوسيع بشكل طبيعي لأنواع وحدات التحكم الأخرى ، باستخدام بناء جملة النوع / الاسم.

على سبيل المثال:

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

بخلاف الأمر نفسه ، لا أتوقع أن يقوم إجراء التحديث بمشاركة الكود.

يقوم أمر التحديث المتداول الحالي بإنشاء وحدة تحكم ReplicationController جديدة وتغيير حجمها تدريجيًا أثناء تصغير الحجم القديم. في حالة --image ، فإنه يقوم "برقصة الحذف" في النهاية من أجل تغيير الاسم مرة أخرى إلى RC الأصلي - يقوم بحذف الأصل ، وإنشاء RC آخر بنفس الاسم ، ثم يحذف تم استخدام RC المؤقت لطرح الصورة الجديدة.

في حالة DaemonSet ، ستفعل kubectl العكس: ستقوم بتحديث DaemonSet الأصلي وحذف الكبسولات واحدة تلو الأخرى لاستبدالها. إذا تم تحديد --image ، فسيتم ذلك في النهاية. إذا تم تحديد اسم DaemonSet جديد (على سبيل المثال ، kubectl rolling-update daemonset/mydaemon-v1 -f mydaemon-v2.yaml ) ، فسيتم إنشاء DaemonSet الجديد في نهاية عملية التحديث ، وسيتم حذف الأصل. سنحتاج إما إلى التأكد من معالجة DaemonSet لذلك بأمان ، أو سنحتاج إلى حذف DaemonSet الأصلي قبل إنشاء المجموعة الجديدة (على غرار اقتراحي في # 7402).

سم مكعبmikedanesedavidoppmadhusudancsjanetkuokargakispwittrockgmarek

1.6 يتضمن ترقيات متجددة لـ DaemonSets.

شكرا للتحديث! 👍

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات