Kubernetes 1.16 - نحوه ارتقاء بدون شکستن چیزی

Kubernetes 1.16 - نحوه ارتقاء بدون شکستن چیزی

امروز، 18 سپتامبر، نسخه بعدی Kubernetes منتشر شد - 1.16. مثل همیشه، پیشرفت ها و محصولات جدید زیادی در انتظار ما هستند. اما توجه شما را به قسمت های Action Required فایل جلب می کنم CHANGELOG-1.16.md. این بخش ها تغییراتی را منتشر می کنند که ممکن است برنامه شما را خراب کند، ابزارهای نگهداری خوشه یا نیاز به تغییراتی در فایل های پیکربندی داشته باشد.

به طور کلی، آنها نیاز به مداخله دستی دارند ...

بیایید فوراً با تغییری شروع کنیم که به احتمال زیاد همه کسانی را که به اندازه کافی با kubernetes کار کرده اند تحت تأثیر قرار می دهد. Kubernetes API دیگر از نسخه‌های API منابع قدیمی پشتیبانی نمی‌کند.

اگر کسی نمی دانست یا فراموش کرد ...نسخه API منبع در مانیفست، در فیلد نشان داده شده است apiVersion: apps/v1

یعنی

نوع منبع
نسخه قدیمی
با چی عوضش کنم؟

همه منابع
apps/v1beta1
apps/v1beta2
apps/v1

اعزام ها
دیمونست
replicaset
افزونه/v1beta1
apps/v1

سیاست های شبکه
extensions/v1beta1
networking.k8s.io/v1

سیاست های امنیتی پاد
extensions/v1beta1
Policy/v1beta1

همچنین توجه شما را به این نکته جلب می کنم که اشیاء از نوع Ingress نیز تغییر کرد apiVersion بر networking.k8s.io/v1beta1. معنی قدیمی extensions/v1beta1 هنوز پشتیبانی می شود، اما دلیل خوبی برای به روز رسانی همزمان این نسخه در مانیفست ها وجود دارد.

تغییرات بسیار زیادی در برچسب های مختلف سیستم (Node labels) که روی گره ها نصب می شوند، وجود دارد.

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-proxy
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

ip-mask-agent
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 فایل پیکربندی اولیه kublet را در پشت آن حذف می کند bootstrap-kubelet.conf. اگر ابزار شما به این فایل دسترسی داشت، به استفاده از آن بروید kubelet.conf، که تنظیمات دسترسی فعلی را ذخیره می کند.

Cadvisor دیگر معیارها را ارائه نمی دهد pod_name и container_nameاگر از آنها در Prometheus استفاده کردید، به متریک بروید pod и container بود.

کلیدها را با دستور line حذف کرد:

کامپوننت
کلید جمع شده

هایپرکوب
--make-symlink

kube-proxy
- ظرف منبع

زمانبند شروع به استفاده از نسخه 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

اضافه کردن نظر