Kubernetes 1.16 - cách nâng cấp mà không hỏng gì

Kubernetes 1.16 - cách nâng cấp mà không hỏng gì

Hôm nay, ngày 18 tháng 1.16, phiên bản tiếp theo của Kubernetes được phát hành - XNUMX. Như mọi khi, nhiều cải tiến và sản phẩm mới đang chờ đợi chúng ta. Nhưng tôi muốn bạn chú ý đến phần Hành động bắt buộc của tệp THAY ĐỔI-1.16.md. Các phần này xuất bản các thay đổi có thể làm hỏng ứng dụng của bạn, các công cụ bảo trì cụm hoặc yêu cầu thay đổi các tệp cấu hình.

Nói chung, họ yêu cầu can thiệp thủ công...

Hãy bắt đầu ngay với một thay đổi có nhiều khả năng sẽ ảnh hưởng đến tất cả những người đã làm việc với kubernetes đủ lâu. API Kubernetes không còn hỗ trợ các phiên bản API tài nguyên cũ nữa.

Nếu ai chưa biết hoặc quên...Phiên bản API của tài nguyên được chỉ định trong tệp kê khai, trong trường apiVersion: apps/v1

Cụ thể

Loại tài nguyên
phiên bản cũ
Nên thay thế bằng gì

Tất cả tài nguyên
ứng dụng/v1beta1
ứng dụng/v1beta2
ứng dụng / v1

triển khai
daemonset
bản sao
tiện ích mở rộng/v1beta1
ứng dụng / v1

chính sách mạng
tiện ích mở rộng/v1beta1
network.k8s.io/v1

chính sách podsecurity
tiện ích mở rộng/v1beta1
chính sách/v1beta1

Tôi cũng muốn thu hút sự chú ý của bạn đến thực tế là các đối tượng thuộc loại Ingress cũng đã thay đổi apiVersion trên networking.k8s.io/v1beta1. Nghĩa cũ extensions/v1beta1 vẫn được hỗ trợ nhưng có lý do chính đáng để cập nhật phiên bản này trong tệp kê khai cùng một lúc.

Có khá nhiều thay đổi về các nhãn hệ thống khác nhau (Nhãn nút) được cài đặt trên các nút.

Kubelet bị cấm đặt nhãn tùy ý (trước đây chúng có thể được đặt thông qua phím khởi chạy kubelet --node-labels), họ chỉ để lại danh sách này được phép:

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/*

Nhãn beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready và beta.kubernetes.io/kube-proxy-ds-ready không còn được thêm vào các nút mới và nhiều thành phần bổ sung khác đã bắt đầu sử dụng các nhãn hơi khác nhau làm bộ chọn nút:

Thành phần
Nhãn cũ
Nhãn hiện tại

proxy kube
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

đại lý mặt nạ ip
beta.kubernetes.io/masq-agent-ds-ready
node.kubernetes.io/masq-agent-ds-ready

proxy siêu dữ liệu
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

kubeadm hiện xóa tệp cấu hình kublet ban đầu đằng sau nó bootstrap-kubelet.conf. Nếu công cụ của bạn đang truy cập tệp này thì hãy chuyển sang sử dụng kubelet.conf, nơi lưu trữ cài đặt truy cập hiện tại.

Cadvisor không còn cung cấp số liệu pod_name и container_namenếu bạn đã sử dụng chúng trong Prometheus, hãy chuyển tới số liệu pod и container tương ứng.

Đã xóa các phím bằng lệnh dòng:

Thành phần
Phím rút lại

hyperkube
--make-symlink

proxy kube
--resource-container

Bộ lập lịch bắt đầu sử dụng phiên bản v1beta1 của API sự kiện. Nếu bạn sử dụng các công cụ của bên thứ ba để tương tác với API sự kiện, hãy chuyển sang phiên bản mới nhất.

Một khoảnh khắc hài hước. Trong quá trình chuẩn bị phát hành 1.16, những thay đổi sau đã được thực hiện:

  • đã xóa chú thích scheduler.alpha.kubernetes.io/critical-pod trong phiên bản v1.16.0-alpha.1
  • trả lại chú thích scheduler.alpha.kubernetes.io/critical-pod trong phiên bản v1.16.0-alpha.2
  • đã xóa chú thích scheduler.alpha.kubernetes.io/critical-pod trong phiên bản v1.16.0-beta.1

Sử dụng trường spec.priorityClassName để chỉ ra tầm quan trọng của pod.

Nguồn: www.habr.com

Thêm một lời nhận xét