Kubernetes 1.16 - كيفية الترقية دون كسر أي شيء

Kubernetes 1.16 - كيفية الترقية دون كسر أي شيء

اليوم، 18 سبتمبر، تم إصدار الإصدار التالي من Kubernetes - 1.16. كما هو الحال دائمًا، تنتظرنا العديد من التحسينات والمنتجات الجديدة. ولكن أود أن ألفت انتباهكم إلى الأقسام المطلوبة من الملف التغيير-1.16.md. تنشر هذه الأقسام التغييرات التي قد تؤدي إلى تعطيل التطبيق الخاص بك، أو أدوات صيانة المجموعة، أو تتطلب إجراء تغييرات على ملفات التكوين.

بشكل عام، فهي تتطلب التدخل اليدوي...

لنبدأ على الفور بالتغيير الذي سيؤثر على الأرجح على كل من عمل مع kubernetes لفترة كافية. لم تعد واجهة برمجة تطبيقات Kubernetes تدعم إصدارات واجهة برمجة التطبيقات للموارد القديمة.

ومن لم يعلم أو نسي..تتم الإشارة إلى إصدار API للمورد في البيان في الحقل apiVersion: apps/v1

أي

نوع المورد
نسخة قديمة
ما ينبغي استبداله

جميع الموارد
التطبيقات/v1beta1
التطبيقات/v1beta2
تطبيقات / v1

نشر
شيطان
مجموعة النسخ المتماثلة
الامتداد/v1beta1
تطبيقات / v1

سياسات الشبكة
ملحقات/v1beta1
الشبكات. k8s.io/v1

com.podsecuritypolicies
ملحقات/v1beta1
السياسة/v1beta1

أود أيضًا أن ألفت انتباهكم إلى حقيقة أن الكائنات من النوع Ingress تغيرت أيضا apiVersion في networking.k8s.io/v1beta1. المعنى القديم extensions/v1beta1 لا يزال مدعومًا، ولكن هناك سبب وجيه لتحديث هذا الإصدار في البيانات في نفس الوقت.

هناك الكثير من التغييرات في تسميات النظام المختلفة (تسميات العقدة) المثبتة على العقد.

تم منع Kubelet من تعيين تسميات عشوائية (كان من الممكن في السابق تعيينها عبر مفاتيح التشغيل kubelet --node-labels)، تركوا هذه القائمة فقط مباح:

kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch

beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch

failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region

failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region

[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*

الكلمات beta.kubernetes.io/metadata-proxy-readyو beta.kubernetes.io/metadata-proxy-ready و beta.kubernetes.io/kube-proxy-ds-ready لم تعد تتم إضافتها إلى العقد الجديدة، وبدأت العديد من المكونات الإضافية في استخدام تسميات مختلفة قليلاً كمحددات للعقد:

عنصر
التسمية القديمة
التسمية الحالية

وكيل kube
beta.kubernetes.io/kube-proxy-ds-ready
Node.kubernetes.io/kube-proxy-ds-ready

وكيل قناع الملكية الفكرية
beta.kubernetes.io/masq-agent-ds-ready
Node.kubernetes.io/masq-agent-ds-ready

بيانات التعريف الوكيل
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

يقوم kubeadm الآن بإزالة ملف تكوين kulet الأولي الموجود خلفه bootstrap-kubelet.conf. إذا كانت أدواتك تصل إلى هذا الملف، فانتقل إلى الاستخدام kubelet.conf، الذي يخزن إعدادات الوصول الحالية.

لم يعد Cadvisor يوفر المقاييس pod_name и container_nameإذا استخدمتها في بروميثيوس، انتقل إلى المقاييس pod и container على التوالي.

تمت إزالة المفاتيح باستخدام أمر السطر:

عنصر
مفتاح متراجع

com.hyperkube
--make-symlink

وكيل kube
--resource-container

بدأ المجدول باستخدام الإصدار v1beta1 من Event API. إذا كنت تستخدم أدوات خارجية للتفاعل مع Event API، فقم بالتبديل إلى الإصدار الأحدث.

لحظة من الفكاهة. أثناء إعداد الإصدار 1.16، تم إجراء التغييرات التالية:

  • تمت إزالة التعليق التوضيحي scheduler.alpha.kubernetes.io/critical-pod في الإصدار v1.16.0-alpha.1
  • أعاد الشرح scheduler.alpha.kubernetes.io/critical-pod في الإصدار v1.16.0-alpha.2
  • تمت إزالة التعليق التوضيحي scheduler.alpha.kubernetes.io/critical-pod في الإصدار v1.16.0-beta.1

استخدم الحقل spec.priorityClassName للإشارة إلى أهمية الكبسولة.

المصدر: www.habr.com

إضافة تعليق