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



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

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

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

إذا كان أي شخص لا يعرف ، أو نسيت ...
يشار إلى إصدار واجهة برمجة تطبيقات المورد في البيان في apiVersion: apps/v1

وهي:
نوع الموردالإصدار القديمما ينبغي استبداله
جميع المواردالتطبيقات / v1beta1
التطبيقات / v1beta2
تطبيقات / v1
نشر
daemonset
replicaset
ملحقات / v1beta1تطبيقات / v1
networkpoliciesملحقات / v1beta1networking.k8s.io/v1
podsecuritypoliciesملحقات / v1beta1سياسة / v1beta1
أريد أيضًا أن أشير إلى أنه بالنسبة لكائنات مثل Ingress تغيرت apiVersion أيضًا إلى apiVersion . لا تزال 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/masq-agent-ds-ready و beta.kubernetes.io/kube-proxy-ds-ready إلى العقد الجديدة ، ولم تعد تتم إضافة العلامات الإضافية بدأت المكونات في استخدام علامات مختلفة قليلاً كمحدد للعقدة:
عنصرالتسمية القديمةالعلامة الحالية
كوبي بالوكالةbeta.kubernetes.io/kube-proxy-ds-readynode.kubernetes.io/kube-proxy-ds-ready
الملكية الفكرية قناع وكيلbeta.kubernetes.io/masq-agent-ds-readynode.kubernetes.io/masq-agent-ds-ready
التعريف بالوكالةbeta.kubernetes.io/metadata-proxy-readycloud.google.com/metadata-proxy-ready
kubeadm الآن يزيل ملف التكوين الأولي bootstrap-kubelet.conf . إذا وصلت kubelet.conf إلى هذا الملف ، فانتقل إلى استخدام kubelet.conf ، الذي يخزن إعدادات الوصول الحالية.

لم يعد Cadvisor يعطي مقاييس pod_name و container_name ، إذا كنت تستخدمهما في Prometheus ، فانتقل إلى مقاييس pod container ، على التوالي.

تمت إزالة المفاتيح باستخدام سطر الأوامر:
عنصرتمت إزالة المفتاح
hyperkube--make-الرمزي
كوبي بالوكالة--resource حاوية
بدأ Sheduler في استخدام الإصدار v1beta1 Event API. إذا كنت تستخدم أدوات الجهات الخارجية للتفاعل مع Event API ، فانتقل إلى الإصدار الحالي.

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

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

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

Source: https://habr.com/ru/post/ar467883/


All Articles