Kubernetes 舊版套件儲存庫將於 2023 年 9 月 13 日凍結
在 2023 年 8 月 15 日,Kubernetes 專案宣布社群擁有的 Debian 和 RPM 套件儲存庫正式發布,網址為 pkgs.k8s.io
。新的套件儲存庫是舊版 Google 託管套件儲存庫:apt.kubernetes.io
和 yum.kubernetes.io
的替代品。pkgs.k8s.io
的公告網誌文章強調,我們未來將停止發布套件到舊版儲存庫。
今天,我們正式棄用舊版套件儲存庫 (apt.kubernetes.io
和 yum.kubernetes.io
),並宣布我們計劃在 2023 年 9 月 13 日凍結儲存庫的內容。
請繼續閱讀以了解這對您作為使用者或發行者意味著什麼,以及您可能需要採取哪些步驟。
ℹ️ 更新 (2024 年 3 月 26 日):舊版 Google 託管儲存庫已於 2024 年 3 月 4 日移除。現在已無法從舊版 Google 託管套件儲存庫安裝 Kubernetes 套件。
這對我這個 Kubernetes 終端使用者有什麼影響?
此變更會影響直接安裝上游 Kubernetes 版本的使用者,無論是手動依照官方安裝和升級指示,或是使用 Kubernetes 安裝程式,而該安裝程式使用 Kubernetes 專案提供的套件。
如果您在自己的 PC 上執行 Linux,並且已使用舊版套件儲存庫安裝 kubectl
,此變更也會影響您。稍後我們將說明如何檢查您是否受到影響。
如果您使用完全託管的 Kubernetes,例如透過雲端供應商的服務,則只有在您也使用舊版儲存庫中的套件在 Linux PC 上安裝 kubectl
時,才會受到此變更的影響。雲端供應商通常使用自己的 Kubernetes 發行版本,因此他們不使用 Kubernetes 專案提供的套件;更重要的是,如果其他人為您管理 Kubernetes,那麼他們通常會負責進行該檢查。
如果您擁有託管的控制平面,但您負責自行管理節點,且這些節點中的任何節點執行 Linux,則您應該檢查您是否受到影響。
如果您依照官方安裝和升級指示自行管理叢集,請依照此網誌文章中的指示移轉至 (新的) 社群擁有的套件儲存庫。
如果您使用的 Kubernetes 安裝程式使用 Kubernetes 專案提供的套件,請查看安裝程式工具的溝通管道,以取得關於您需要採取哪些步驟的資訊,並最終在需要時與維護者聯繫,讓他們了解此變更。
下圖以視覺化形式顯示了誰受到此變更的影響 (點擊圖表可查看較大版本)
這對我這個 Kubernetes 發行者有什麼影響?
如果您將舊版儲存庫用作專案的一部分 (例如 Kubernetes 安裝程式工具),您應盡快移轉至社群擁有的儲存庫,並告知您的使用者此變更以及他們需要採取的步驟。
變更時程表
(於 2024 年 3 月 26 日更新)
- 2023 年 8 月 15 日
Kubernetes 宣布 Kubernetes 組件的 Linux 軟體套件的新社群管理來源 - 2023 年 8 月 31 日
(此公告) Kubernetes 正式棄用舊版套件儲存庫 - 2023 年 9 月 13 日 (大約)
Kubernetes 將凍結舊版套件儲存庫 (apt.kubernetes.io
和yum.kubernetes.io
)。凍結將在 2023 年 9 月排定的修補程式發布後立即發生。 - 2024 年 1 月 12 日
Kubernetes 宣布計劃在 2024 年 1 月移除舊版套件儲存庫 - 2024 年 3 月 4 日
舊版套件儲存庫已被移除。現在已無法從舊版套件儲存庫安裝 Kubernetes 套件
排定於 2023 年 9 月發布的 Kubernetes 修補程式版本 (v1.28.2、v1.27.6、v1.26.9、v1.25.14) 將會發布到社群擁有和舊版儲存庫。
我們將在發布 9 月份的修補程式版本後凍結舊版儲存庫,這表示我們將在該時間點完全停止發布套件到舊版儲存庫。
對於 2023 年 10 月及之後的 v1.28、v1.27、v1.26 和 v1.25 修補程式版本,我們將僅發布套件到新的套件儲存庫 (pkgs.k8s.io
)。
未來的次要版本呢?
Kubernetes 1.29 及之後的版本將僅發布套件到社群擁有的儲存庫 (pkgs.k8s.io
)。
新的社群擁有的套件儲存庫中提供哪些版本?
Kubernetes 套件儲存庫 (pkgs.k8s.io
) 中提供了從 Kubernetes v1.24.0 開始的版本的 Linux 套件。Kubernetes 沒有適用於早期 Kubernetes 版本的官方 Linux 套件;但是,您的 Linux 發行版本可能會提供自己的套件。
我可以繼續使用舊版套件儲存庫嗎?
(於 2024 年 3 月 26 日更新)
舊版 Google 託管儲存庫已於 2024 年 3 月 4 日移除。現在已無法從舊版 Google 託管套件儲存庫安裝 Kubernetes 套件。
舊版儲存庫中的現有套件在可預見的未來將可用。但是,Kubernetes 專案無法保證這將持續多久。已棄用的舊版儲存庫及其內容可能會在未來的任何時間移除,且不會另行通知。
Kubernetes 專案強烈建議盡快移轉至新的社群擁有的儲存庫。 需要移轉至新的套件儲存庫才能使用官方 Kubernetes 套件。
鑑於在 2023 年 9 月 13 日截止日期之後,不會有新版本發布到舊版儲存庫,您將無法升級到從該日期起發布的任何修補程式或次要版本。
雖然專案盡一切努力發布安全的軟體,但 Kubernetes 可能有一天會出現高嚴重性漏洞,因此需要發布重要版本進行升級。我們宣布的建議將幫助您為任何未來的安全性更新做好準備,無論是微不足道的還是緊急的。
我如何檢查我是否正在使用舊版儲存庫?
檢查您是否正在使用舊版儲存庫的步驟取決於您在叢集中使用的是基於 Debian 的發行版本 (Debian、Ubuntu 等) 還是基於 RPM 的發行版本 (CentOS、RHEL、Rocky Linux 等)。
在叢集中的其中一個節點上執行這些指示。
基於 Debian 的 Linux 發行版本
儲存庫定義 (來源) 位於基於 Debian 的發行版本上的 /etc/apt/sources.list
和 /etc/apt/sources.list.d/
中。檢查這兩個位置,並嘗試找到看起來像這樣的套件儲存庫定義
deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main
如果您找到看起來像這樣的儲存庫定義,則您正在使用舊版儲存庫,並且需要移轉。
如果儲存庫定義使用 pkgs.k8s.io
,則您已在使用社群託管的儲存庫,並且無需採取任何動作。
在大多數系統上,此儲存庫定義應位於 /etc/apt/sources.list.d/kubernetes.list
中 (如 Kubernetes 文件建議的那樣),但在某些系統上,它可能位於不同的位置。
如果您找不到與 Kubernetes 相關的儲存庫定義,則您可能未使用套件管理器來安裝 Kubernetes,並且無需採取任何動作。
基於 RPM 的 Linux 發行版本
如果您使用 yum
套件管理器,則儲存庫定義位於 /etc/yum.repos.d
中,如果您使用 dnf
套件管理器,則儲存庫定義位於 /etc/dnf/dnf.conf
和 /etc/dnf/repos.d/
中。檢查這些位置,並嘗試找到看起來像這樣的套件儲存庫定義
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
如果您找到看起來像這樣的儲存庫定義,則您正在使用舊版儲存庫,並且需要移轉。
如果儲存庫定義使用 pkgs.k8s.io
,則您已在使用社群託管的儲存庫,並且無需採取任何動作。
在大多數系統上,該儲存庫定義應位於 /etc/yum.repos.d/kubernetes.repo
中 (如 Kubernetes 文件建議的那樣),但在某些系統上,它可能位於不同的位置。
如果您找不到與 Kubernetes 相關的儲存庫定義,則您可能未使用套件管理器來安裝 Kubernetes,並且無需採取任何動作。
我如何移轉至新的社群營運的儲存庫?
有關如何移轉至新的社群管理套件的更多資訊,請參閱 pkgs.k8s.io
的公告網誌文章。
為何 Kubernetes 專案要進行此變更?
自 Kubernetes v1.5 以來,Kubernetes 一直僅在 Google 託管的儲存庫中發布套件,至今已七年!繼遷移到我們的社群管理登錄檔 registry.k8s.io
之後,我們現在正在將 Kubernetes 套件儲存庫遷移到我們自己的社群管理基礎架構。我們感謝 Google 多年來的持續託管和支援,但此過渡標誌著專案邁向完全社群擁有的基礎架構目標的另一個重要里程碑。
是否有 Kubernetes 工具可以協助我移轉?
我們沒有關於工具的任何公告。作為 Kubernetes 使用者,您必須手動修改您的組態以使用新的儲存庫。自動化從舊版儲存庫到社群擁有的儲存庫的移轉在技術上具有挑戰性,我們希望避免與此相關的任何潛在風險。
致謝
首先,我們要感謝 Alphabet 的貢獻。Google 的員工貢獻了他們的時間;Google 作為一家企業,提供了基礎架構來提供套件,以及提供這些套件可信任數位簽章的安全性環境。這些對於 Kubernetes 的採用和成長至關重要。
發布軟體可能不光彩,但它很重要。Kubernetes 貢獻者社群中的許多人為我們作為專案的新建構和發布套件方式做出了貢獻。
最後,我們要再次感謝 SUSE 的幫助。SUSE 的 OpenBuildService 是為新的社群管理套件儲存庫提供技術支援的技術。