Kubernetes 1.16 - วิธีอัปเกรดโดยไม่ทำลายอะไรเลย

Kubernetes 1.16 - วิธีอัปเกรดโดยไม่ทำลายอะไรเลย

วันนี้ 18 กันยายน Kubernetes เวอร์ชันถัดไปเปิดตัว - 1.16 เช่นเคย การปรับปรุงและผลิตภัณฑ์ใหม่ๆ มากมายรอเราอยู่ แต่ฉันอยากจะดึงความสนใจของคุณไปที่ส่วนที่ต้องดำเนินการของไฟล์ CHANGELOG-1.16.md. ส่วนเหล่านี้เผยแพร่การเปลี่ยนแปลงที่อาจทำให้แอปพลิเคชัน เครื่องมือบำรุงรักษาคลัสเตอร์ของคุณเสียหาย หรือจำเป็นต้องเปลี่ยนแปลงไฟล์การกำหนดค่า

โดยทั่วไป พวกเขาต้องการการแทรกแซงด้วยตนเอง...

มาเริ่มกันทันทีด้วยการเปลี่ยนแปลงที่อาจส่งผลกระทบต่อทุกคนที่ทำงานกับ kubernetes มานานพอสมควร Kubernetes API ไม่รองรับ API เวอร์ชันทรัพยากรเดิมอีกต่อไป

หากใครไม่รู้หรือลืม...เวอร์ชัน API ของทรัพยากรระบุไว้ในรายการในช่อง apiVersion: apps/v1

กล่าวคือ

ประเภททรัพยากร
เวอร์ชั่นเก่า
สิ่งที่ควรทดแทนด้วย

ทรัพยากรทั้งหมด
แอพ/v1beta1
แอพ/v1beta2
แอพ/v1

การใช้งาน
ภูต
ชุดจำลอง
ส่วนขยาย/v1beta1
แอพ/v1

นโยบายเครือข่าย
ส่วนขยาย/v1beta1
networking.k8s.io/v1

นโยบายความปลอดภัยของพ็อด
ส่วนขยาย/v1beta1
นโยบาย/v1beta1

ฉันยังอยากจะดึงความสนใจของคุณไปที่ความจริงที่ว่าวัตถุประเภท Ingress ก็เปลี่ยนไปเช่นกัน apiVersion บน networking.k8s.io/v1beta1. ความหมายเก่า extensions/v1beta1 ยังคงได้รับการสนับสนุน แต่มีเหตุผลที่ดีที่จะอัปเดตเวอร์ชันนี้ในรายการพร้อมกัน

มีการเปลี่ยนแปลงค่อนข้างมากในป้ายกำกับระบบต่างๆ (Node label) ที่ติดตั้งบนโหนด

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

ตัวแทน ip-mask
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-พร็อกซี
--ทรัพยากรคอนเทนเนอร์

ตัวกำหนดเวลาเริ่มใช้เวอร์ชัน 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 เพื่อบ่งบอกถึงความสำคัญของพ็อด

ที่มา: will.com

เพิ่มความคิดเห็น