Phát hành phiên bản

Kubernetes duy trì các nhánh phát hành cho ba bản phát hành phụ gần đây nhất: (1.35, 1.34, 1.33).

Kubernetes phiên bản 1.19 trở lên sẽ nhận được hỗ trợ bản vá trong khoảng một năm. Các phiên bản Kubernetes trước 1.18 được hỗ trợ bản vá trong khoảng chín tháng.

Phiên bản Kubernetes được biểu thị dưới dạng x.y.z. Ở đây, x chỉ phiên bản chính (major), y chỉ phiên bản phụ (minor) và z chỉ phiên bản vá (patch), theo thuật ngữ Phiên bản ngữ nghĩa.

Bạn có thể tìm thấy thông tin chi tiết hơn về độ lệch phiên bản (version skew) trong tài liệu Chính sách về độ lệch phiên bản.

Lịch sử phát hành các phiên bản

1.35

Bản phát hành mới nhất:1.35.3 (phát hành ngày: )
Kết thúc vòng đời:
Bản Phát hành Patch: 1.35.1, 1.35.2, 1.35.3

Đầy Đủ 1.35 Lịch TrìnhChangelog

View release details

1.34

Bản phát hành mới nhất:1.34.6 (phát hành ngày: )
Kết thúc vòng đời:
Bản Phát hành Patch: 1.34.0, 1.34.1, 1.34.2, 1.34.3, 1.34.4, 1.34.5, 1.34.6

Đầy Đủ 1.34 Lịch TrìnhChangelog

View release details

1.33

Bản phát hành mới nhất:1.33.10 (phát hành ngày: )
Kết thúc vòng đời:
Bản Phát hành Patch: 1.33.1, 1.33.2, 1.33.3, 1.33.4, 1.33.5, 1.33.6, 1.33.7, 1.33.8, 1.33.9, 1.33.10

Đầy Đủ 1.33 Lịch TrìnhChangelog

View release details

Lịch phát hành các phiên bản tiếp theo

Tham khảo lịch phát hành để biết thêm về phiên bản 1.36 phát hành sắp tới của Kubernetes!

Thông tin liên hệ

Tham khảo thêm về Nhóm phát hành Kubernetes để biết thêm thông tin về vai trò và quy trình phát hành.

1 - Chính sách về độ lệch phiên bản

Độ lệch phiên bản tối đa được hỗ trợ giữa các thành phần của Kubernetes.

Độ lệch phiên bản (version skew) đề cập đến sự khác biệt về phiên bản giữa các thành phần khác nhau trong cụm Kubernetes. Điều quan trọng là phải quản lý độ lệch phiên bản để đảm bảo khả năng tương thích và tính ổn định trong cụm.

Tài liệu này mô tả độ lệch phiên bản tối đa được hỗ trợ giữa các thành phần Kubernetes khác nhau.

Chú ý: Các công cụ triển khai cụm có thể có các hạn chế khác về độ lệch phiên bản, không được đề cập đến trong tài liệu này.

Các phiên bản được hỗ trợ

Phiên bản Kubernetes được biểu thị dưới dạng x.y.z. Ở đây, x chỉ phiên bản chính (major), y chỉ phiên bản phụ (minor) và z chỉ phiên bản vá (patch), theo thuật ngữ Phiên bản ngữ nghĩa (Semantic Versioning). Tham khảo thêm tại Kubernetes Release Versioning.

Kubernetes duy trì các nhánh phát hành cho ba bản phát hành phụ gần đây nhất: (1.35, 1.34, 1.33). Kubernetes phiên bản 1.19 trở lên sẽ nhận được hỗ trợ bản vá trong khoảng một năm. Các phiên bản Kubernetes trước 1.18 được hỗ trợ bản vá trong khoảng chín tháng.

Các bản sửa lỗi chức năng, bao gồm cả các sửa lỗi bảo mật, có thể được thêm vào ba nhánh phát hành đó, tùy thuộc vào mức độ nghiêm trọng và tính khả thi. Các bản vá được phát hành từ các nhánh đó theo lịch phát hành định kỳ, cộng với các bản phát hành khẩn cấp bổ sung, khi cần thiết.

Nhóm quản lý phát hành sẽ chịu trách nhiệm đưa ra quyết định này.

Thông tin chi tiết, tham khảo thêm tại tài liệu phát hành bản vá Kubernetes.

Các phiên bản lệch được hỗ trợ

Các phiên bản lệch (so với phiên bản mới nhất) được hỗ trợ cho từng thành phần của Kubernetes theo chính sách sau.

kube-apiserver

Đối với Cụm khả dụng cao (HA Clusters) (cụm có nhiều instance kube-apiserver cùng hoạt động), phiên bản cũ nhất và mới nhất của các instance kube-apiserver trong cụm không lệch nhau quá 1 phiên bản phụ.

Ví dụ:

kubelet

Ví dụ:

Lưu ý:

Trong trường hợp cụm HA chứa các instance kube-apiserver lệch phiên bản, số lượng phiên bản được cho phép của kubelet sẽ bị giảm đi.

Ví dụ:

kube-proxy

Ví dụ:

Lưu ý:

Trong trường hợp cụm HA chứa các instance kube-apiserver lệch phiên bản, số lượng phiên bản được cho phép của kube-proxy sẽ bị giảm đi.

kube-controller-manager, kube-scheduler, cloud-controller-manager

Phiên bản phát hành của kube-controller-manager, kube-scheduler, và cloud-controller-manager không được phép mới hơn của kube-apiserver mà chúng hoạt động cùng. Phiên bản phát hành được kỳ vọng là trùng với phiên bản phát hành của kube-apiserver, tuy nhiên có thể cũ hơn tối đa 1 phiên bản phát hành phụ (minor release) trong trường hợp nâng cấp cụm (live upgrades).

Ví dụ:

Lưu ý:

Trong trường hợp cụm HA chứa các instance kube-apiserver lệch phiên bản, và các thành phần này có thể tương tác với tất cả các instance kube-apiserver trong cụm (chẳng hạn thông qua load balancer), số lượng phiên bản được cho phép của các thành phần này sẽ giảm đi.

Ví dụ:

kubectl

Độ lệch phiên bản phát hành được cho phép của kubectl là 1 bản phát hành phụ (minor release) cũ hoặc mới hơn so với phiên bản phát hành của kube-apiserver

Ví dụ:

Lưu ý:

Trong trường hợp cụm HA chứa các instance kube-apiserver lệch phiên bản, số lượng phiên bản được cho phép của kubectl sẽ bị giảm đi.

Ví dụ:

Thứ tự nâng cấp thành phần

Độ lệch phiên bản được hỗ trợ giữa các thành phần có tác động tới thứ tự mà các thành phần được nâng cấp. Phần này mô tả thứ tự mà các thành phần phải được nâng cấp để chuyển đổi cụm hiện có từ phiên bản 1.34 sang phiên bản 1.35.

Ngoài ra, khi chuẩn bị nâng cấp, Kubernetes khuyến nghị bạn thực hiện các bước sau để được hưởng lợi từ nhiều bản sửa lỗi và hồi quy nhất có thể trong quá trình nâng cấp:

Chẳng hạn, hiện tại bạn đang sử dụng phiên bản phát hành 1.34, hãy chắc chắn bạn đã đang sử dụng bản vá mới nhất. Sau đó, tiến hành nâng cấp cụm lên phiên bản vá mới nhất của 1.35.

kube-apiserver

Điều kiện:

Tiến hành nâng cấp kube-apiserver lên phiên bản 1.35.

Lưu ý:

Theo chính sách cho API deprecationAPI change guidelines, kube-apiserver được yêu cầu nâng cấp lần lượt qua tất cả các phiên bản phát hành phụ (minor release), bất kể trong trường hợp cài đặt HA hay không

kube-controller-manager, kube-scheduler, cloud-controller-manager

Điều kiện:

Tiến hành nâng cấp kube-controller-manager, kube-scheduler, và cloud-controller-manager lên phiên bản 1.35.

Không có yêu cầu nào về thứ tự nâng cấp giữa các controllers và scheduler. Bạn có thể nâng cấp theo bất cứ thứ tự nào, thậm trí nâng cấp đồng thời tất cả các controllers và scheduler.

kubelet

Điều kiện:

Có thể nâng cấp phiên bản phát hành của kubelet lên 1.35 (hoặc cũng có thể để nguyên ở 1.34, 1.33, hoặc 1.32)

Lưu ý:

Trước khi tiến hành nâng cấp phiên bản kubelet, drain tất cả pod khỏi node đó. Nâng cấp phiên bản phát hành cho kubelet khi đang hoạt động hiện chưa được hỗ trợ.

Cảnh báo:

Sử dụng một cụm có chứa các kubelet đang chạy ở phiên bản phát hành cũ hơn của kube-apiserver 3 phiên bản, đồng nghĩa bạn phải nâng cấp kubelet trước khi có thể nâng cấp control plane (kube-apiserver, kube-controller-manager, kube-scheduler, etc.)

kube-proxy

Điều kiện:

Có thể nâng cấp phiên bản phát hành của kube-proxy lên 1.35 (hoặc cũng có thể để nguyên ở 1.34, 1.33, hoặc 1.32)

Cảnh báo:

Sử dụng một cụm có chứa các kube-proxy đang chạy ở phiên bản phát hành cũ hơn của kube-apiserver 3 phiên bản, đồng nghĩa bạn phải nâng cấp kube-proxy trước khi có thể nâng cấp control plane (kube-apiserver, kube-controller-manager, kube-scheduler, etc.)

2 - Ghi chú

Ghi chú về bản phát hành của Kubernetes

Bạn có thể tìm thấy ghi chú về bản phát hành (Release Note) của phiên bản Kubernetes bạn đang sử dụng thông qua trang Changelog trong repo Kubernetes trên GitHub. Ví dụ, ghi chú về bản phát hành 1.35 tại Changelog Kubernetes.

Ngoài ra, bạn cũng có thể tìm kiếm ghi chú về bản phát hành một cách trực tiếp thông qua: relnotes.k8s.io. Ví dụ, ghi chú về bản phát hành 1.35 tại relnotes.k8s.io.

3 - Quản lý phát hành

"Người quản lý phát hành" là thuật ngữ chung bao gồm nhóm những người đóng góp cho Kubernetes chịu trách nhiệm duy trì các nhánh phát hành và tạo các bản phát hành bằng cách sử dụng các công cụ mà SIG Release cung cấp.

Vai trò của từng nhóm được thể hiện như sau

Thông tin liên hệ

Mailing List Slack Visibility Mục đích Thành viên
release-managers@kubernetes.io #release-management (channel) / @release-managers (user group) Public Nơi thảo luận công khai của nhóm quản lý phát hành Tất cả thành viên (bao gồm cả nhóm trợ lý, và SIG Chairs)
release-managers-private@kubernetes.io N/A Private Nơi thảo luận riêng cho các quản trị viên đặc quyền Nhóm quản trị phát hành, leader tại SIG Release
security-release-team@kubernetes.io #security-release-team (channel) / @security-rel-team (user group) Private Nhóm an ninh và nhóm ứng phó sự cố an ninh security-discuss-private@kubernetes.io, release-managers-private@kubernetes.io

Chính sách cấm chia sẻ thông tin an ninh

Một số thông tin về bản phát hành có thể không được công khai và chúng tôi đã xác định chính sách về cách thiết lập lệnh cấm công khai đó. Tham khảo thêm tại Chính sách cấm chia sẻ thông tin an ninh.

Handbooks

LƯU Ý: Handbook cho Nhóm phát hành bản vá và Nhóm quản trị nhánh phát hành (branch) sẽ được loại bỏ trùng lặp sau.

Nhóm quản lý phát hành

Lưu ý: Tài liệu có thể đề cập đến Nhóm phát hành bản vá và vai trò Quản lý nhánh phát hành. Hai vai trò đó được hợp nhất thành vai trò Quản lý phát hành.

Yêu cầu tối thiểu cho Nhóm quản lý phát hành và Nhóm hỗ trợ quản lý phát hành:

Nhóm quản lý phát hành có trách nhiệm:

Nhóm quản lý phát hành cũng làm việc chặt chẽ với Ủy ban ứng phó vấn đề an ninh, do đó tuân thủ theo các hướng dẫn được nêu trong Quy trình an ninh cho phát hành.

GitHub Access Controls: @kubernetes/release-managers

GitHub Mentions: @kubernetes/release-engineering

Tham gia nhóm quản lý phát hành

Để trở thành thành viên nhóm quản lý phát hành, bạn phải trải qua quá trình dự bị quản lý phát hành. Những thành viên dự bị được thăng hạng trở thành thành viên quản lý phát hành thông qua việc hoàn thành những nhiệm vụ được giao qua nhiều vòng phát triển (release cycles), đồng thời:

Nhóm dự bị quản lý phát hành

Nhóm dự bị quản lý phát hành được hiểu là người học việc để trở thành người thuộc Nhóm quản lý phát hành. Trách nhiệm bao gồm:

GitHub Mentions: @kubernetes/release-engineering

Tham gia nhóm dự bị quản lý phát hành

Người đóng góp độc lập có thể tham gia vào nhóm dự bị quản lý phát hành qua việc đạt được các tiêu chí sau:

SIG Release Leads

SIG Release Chairs và Technical Leads có nhiệm vụ:

Họ được đề cập rõ ràng ở đây vì họ là có đặc quyền ở nhiều kênh liên lạc và nhóm phân quyền (ví dụ nhóm phân quyền trên GitHub org, quyền truy cập GCP) cho từng vai trò. Do đó, họ là thành viên cộng đồng có đặc quyền cao và được biết một số thông tin liên lạc không công khai, đôi khi có thể liên quan đến vấn đề bảo mật của Kubernetes.

GitHub team: @kubernetes/sig-release-leads

Chairs

Technical Leads


Bạn có thể tìm thấy thông tin về các nhóm quản lý nhánh phát hành trước đây tại thư mục releases của repo kubernetes/sig-release, các tệp release-x.y/release_team.md.

Ví dụ: 1.15 Release Team

4 - Tải xuống Kubernetes

Kubernetes cung cấp các tệp nhị phân cho từng thành phần cũng như một bộ các công cụ chuẩn để khởi động hoặc tương tác với một cụm. Các thành phần như máy chủ API (kube-apiserver) có khả năng chạy trong container image (tương tự một ứng dụng trên Kubernetes) bên trong một cụm. Các thành phần như vậy được đóng gói dưới dạng container image như một phần của quy trình phát hành chính thức. Tất cả các tệp nhị phân cũng như container image được phát hành tương thích cho nhiều hệ điều hành cũng như phần cứng.

kubectl

Công cụ command-line của Kubernetes, kubectl, cho phép bạn tương tác với cụm Kubernetes.

Có thể sử dụng kubectl để triển khai ứng dụng, quan sát, quản lý tài nguyên của cụm, hay xem log. Chi tiết thêm về kubectl, tham khảo the tài liệu về kubectl.

kubectl có thể được cài đặt trên nhiều hệ điều hành khác nhau, Linux, macOS hay Windows. Bạn có thể tìm thấy hướng dẫn cài đặt cụ thể tương ứng ở dưới

Container images

Tất cả các container image của Kubernetes đều được tải lên registry.k8s.io.

Container Image Supported Architectures
registry.k8s.io/kube-apiserver:v1.35.0 amd64, arm, arm64, ppc64le, s390x
registry.k8s.io/kube-controller-manager:v1.35.0 amd64, arm, arm64, ppc64le, s390x
registry.k8s.io/kube-proxy:v1.35.0 amd64, arm, arm64, ppc64le, s390x
registry.k8s.io/kube-scheduler:v1.35.0 amd64, arm, arm64, ppc64le, s390x
registry.k8s.io/conformance:v1.35.0 amd64, arm, arm64, ppc64le, s390x

Container image architectures

Tất cả các container image đều có sẵn cho các kiến trúc (hardware architecture). Bạn có thể kéo chính xác container image tương ứng với kiến trúc của máy bằng cách thêm vào phần đuôi tên container image. Ví dụ registry.k8s.io/kube-apiserver-arm64:v1.35.0.

Container image signatures

TRẠNG THÁI TÍNH NĂNG: Kubernetes v1.26 [beta]

Tất cả các container image của Kubernetes được ký (sign) sử dụng chữ ký sigstore

Lưu ý:

Chữ ký sigstore cho các container image hiện tại không ăn khớp giữa các vị trí địa lý. Tìm hiểu thêm về vấn đề này tại GitHub issue.

Kubernetes công khai danh sách các container images đã được ký xác nhận theo SPDX 2.3. Bạn có thể lấy thông tin về danh sách bằng cách:

curl -Ls "https://sbom.k8s.io/$(curl -Ls https://dl.k8s.io/release/stable.txt)/release" | grep "SPDXID: SPDXRef-Package-registry.k8s.io" |  grep -v sha256 | cut -d- -f3- | sed 's/-/\//' | sed 's/-v1/:v1/'

Để kiểm tra các container image được ký xác nhận, làm theo hướng dẫn ở Verify Signed Container Images.

Nếu bạn kéo về một container image cho một kiến trúc phần cứng chỉ định, container image cho kiến trúc đơn (single-architecture) được ký cùng cách với danh sách manifest cho kiến trúc đa (multi-architecture).

Binaries

Bạn có thể tìm liên kết để tải các thành phần Kubernetes (và checksum của chúng) trong các tệp CHANGELOG. Hoặc sử dụng downloadkubernetes.com để lọc theo phiên bản và kiến trúc.