Kubernetes 1.21:賦能社群

我們很高興地宣佈 Kubernetes 1.21 釋出,這是我們 2021 年的第一個版本!此版本包含 51 項增強功能:13 項增強功能已升級到穩定版,16 項增強功能正在移至測試版,20 項增強功能正在進入 Alpha 版,以及 2 項功能已棄用。

在本釋出週期中,我們看到釋出團隊的流程所有權發生了重大轉變。我們從同步通訊模式(定期向社群徵求意見)轉變為社群選擇貢獻功能和/或部落格的模式。這些變化導致社群協作和團隊合作的增加。所有這些都反映在 Kubernetes 1.21 擁有近期最多的功能數量。

主要主題

CronJobs 升級到穩定版!

CronJobs(以前是 ScheduledJobs)自 Kubernetes 1.8 以來一直是 Beta 功能!在 1.21 版本中,我們終於看到這個廣泛使用的 API 升級到穩定版。

CronJobs 用於執行定期排程操作,例如備份、報告生成等。這些任務中的每個都應配置為無限期地重複(例如:每天/周/月一次);您可以定義在該間隔內作業應開始的時間點。

不可變 Secret 和 ConfigMaps

不可變 SecretConfigMaps 為這些資源型別添加了一個新欄位,如果設定,該欄位將拒絕這些物件的更改。Secret 和 ConfigMaps 預設是可變的,這對能夠使用更改的 Pod 有益。修改 Secret 和 ConfigMaps 也可能導致問題,如果推送了使用它們的 Pod 的錯誤配置。

透過將 Secret 和 ConfigMaps 標記為不可變,您可以確保應用程式配置不會更改。如果需要進行更改,則需要建立新的、唯一命名的 Secret 或 ConfigMap,並部署新的 Pod 來使用該資源。不可變資源還具有擴充套件優勢,因為控制器不需要輪詢 API 伺服器來監視更改。

此功能已在 Kubernetes 1.21 中升級到穩定版。

IPv4/IPv6 雙棧支援

IP 地址是叢集操作員和管理員需要確保不會耗盡的消耗性資源。特別是,公共 IPv4 地址現在很稀缺。支援雙棧可以為 Pod 和服務提供原生 IPv6 路由,同時仍允許您的叢集在需要時使用 IPv4 進行通訊。雙棧叢集網路還改善了工作負載可能存在的擴充套件限制。

Kubernetes 中的雙棧支援意味著 Pod、服務和節點可以獲得 IPv4 地址和 IPv6 地址。在 Kubernetes 1.21 中,雙棧網路已從 Alpha 升級到 Beta,現在預設啟用。

優雅節點關機

優雅節點關機也在此版本中升級到 Beta 版(現在將提供給更多使用者)!這是一個非常有益的功能,它允許 kubelet 識別節點關機,並優雅地終止排程到該節點的 Pod。

目前,當節點關機時,Pod 不會遵循預期的終止生命週期,也不會優雅地關機。這可能會導致許多不同工作負載的問題。未來,kubelet 將能夠透過 systemd 檢測到即將到來的系統關機,然後通知執行中的 Pod,以便它們儘可能優雅地終止。

PersistentVolume 健康監視器

Persistent Volumes(PV)通常用於應用程式以獲取本地、基於檔案的儲存。它們可以透過多種不同方式使用,並幫助使用者遷移應用程式而無需重寫儲存後端。

Kubernetes 1.21 有一個新的 Alpha 功能,允許監視 PV 的卷健康狀況,並在卷不健康時進行相應標記。工作負載將能夠根據健康狀態做出反應,以保護資料免受不健康卷的寫入或讀取。

減少 Kubernetes 構建維護

以前,Kubernetes 維護著多個構建系統。這通常是新舊貢獻者摩擦和複雜性的來源。

在過去的釋出週期中,我們投入了大量工作來簡化構建過程,並標準化為原生的 Golang 構建工具。這應該會促進更廣泛的社群維護,並降低新貢獻者的入門門檻。

重大變更

PodSecurityPolicy 棄用

在 Kubernetes 1.21 中,PodSecurityPolicy 已棄用。與所有 Kubernetes 功能棄用一樣,PodSecurityPolicy 將在接下來的幾個版本中繼續可用並完全正常執行。PodSecurityPolicy 以前處於 Beta 階段,計劃在 Kubernetes 1.25 中移除。

下一步是什麼?我們正在開發一種新的內建機制來幫助限制 Pod 許可權,其暫定名稱為“PSP 替換策略”。我們的計劃是讓這種新機制涵蓋關鍵的 PodSecurityPolicy 用例,並大大改進人體工程學和可維護性。要了解更多資訊,請閱讀PodSecurityPolicy 棄用:過去、現在和未來

TopologyKeys 棄用

Service 欄位 topologyKeys 現已棄用;所有使用此欄位的元件功能以前都是 Alpha 版,現在也已棄用。我們用一種實現拓撲感知路由的方式替換了 topologyKeys,稱為拓撲感知提示。拓撲感知提示是 Kubernetes 1.21 中的 Alpha 功能。您可以在拓撲感知提示中閱讀有關替換功能的更多詳細資訊;相關的 KEP 解釋了我們切換的原因。

其他更新

升級到穩定版

值得注意的功能更新

釋出說明

您可以在釋出說明中檢視 1.21 版本的完整詳細資訊。

版本可用性

Kubernetes 1.21 可在 GitHub 上下載。有許多很棒的資源可以幫助您開始使用 Kubernetes。您可以在 Kubernetes 主站點上檢視一些互動式教程,或者使用 Docker 容器和 kind 在您的機器上執行本地叢集。如果您想嘗試從頭開始構建叢集,請檢視 Kelsey Hightower 的Kubernetes the Hard Way 教程。

釋出團隊

這個版本是由一群非常敬業的個人實現的,他們在世界各地發生許多事情的情況下,作為一個團隊走到了一起。非常感謝釋出負責人 Nabarun Pal,以及釋出團隊中的所有其他人,感謝他們互相支援,並如此努力地為社群交付 1.21 版本。

釋出徽標

Kubernetes 1.21 Release Logo

Kubernetes 1.21 釋出徽標描繪了釋出團隊的全球性質,釋出團隊成員分佈在 UTC+8 到 UTC-8 的時區。釋出團隊的多樣性帶來了許多挑戰,但團隊透過採用更多非同步通訊實踐解決了所有這些挑戰。釋出徽標中的七邊形地球象徵著社群克服挑戰的決心。它慶祝了釋出團隊在過去 3 個月裡為帶來一個充滿樂趣的 Kubernetes 版本所付出的驚人團隊合作!

該徽標由印度獨立設計師 Aravind Sekar 設計。Aravind 幫助 PyCon India 等開源社群進行設計工作。

使用者亮點

專案速度

CNCF K8s DevStats 專案彙總了與 Kubernetes 和各種子專案的速度相關的許多有趣資料點。這包括從個人貢獻到貢獻公司的數量,很好地說明了構建這個生態系統所付出的努力的深度和廣度。

在為期 12 周(1 月 11 日至 4 月 8 日)的 v1.21 釋出週期中,我們看到了來自 999 家公司1279 位個人的貢獻。

生態系統更新

  • 在針對全球亞洲社群的種族主義和襲擊日益增多之際,請閱讀 CNCF 總經理 Priyanka Sharma 在 CNCF 部落格上發表的宣告,重申社群對包容性價值觀和多樣性驅動韌性的承諾。
  • 我們現在已經建立了將預設分支從 master 遷移到 main 的流程。在此處瞭解更多有關指南的資訊:k8s.dev/rename
  • CNCF 和 Linux 基金會宣佈推出新的培訓課程 LFS260 – Kubernetes 安全要點。除了提供關於保護基於容器的應用程式和 Kubernetes 平臺的各種最佳實踐的技能和知識外,該課程也是為最近推出的 認證 Kubernetes 安全專家 認證考試做準備的好方法。

活動更新

  • KubeCon + CloudNativeCon 歐洲 2021 將於 2021 年 5 月 4 日至 7 日舉行!您可以在此處找到有關會議的更多資訊。
  • Kubernetes 社群日正在重新啟動!2021 年第二季度將從非洲和班加羅爾開始。

即將舉行的釋出網路研討會

2021 年 5 月 13 日,加入 Kubernetes 1.21 釋出團隊的成員,瞭解此版本中的主要功能,包括 IPv4/IPv6 雙棧支援、PersistentVolume 健康監視器、不可變 Secret 和 ConfigMaps 等。在此處註冊:https://community.cncf.io/events/details/cncf-cncf-online-programs-presents-cncf-live-webinar-kubernetes-121-release/

參與其中

如果您有興趣為 Kubernetes 社群做出貢獻,特別興趣小組 (SIG) 是一個很好的起點。其中許多可能與您的興趣相符!如果您想與社群分享一些內容,可以參加每週的社群會議,或使用以下任何渠道: