Kubernetes 1.20:最棒的釋出
我們很高興地宣佈 Kubernetes 1.20 釋出,這是我們 2020 年的第三個也是最後一個版本!此版本包含 42 項增強功能:11 項增強功能已升級到穩定版,15 項增強功能正在移至 Beta 版,16 項增強功能正在進入 Alpha 版。
在之前的擴充套件釋出週期之後,1.20 釋出週期恢復了其正常的 11 周釋出節奏。這是近期功能最密集的版本之一:Kubernetes 的創新週期仍在向上發展。此版本中的 Alpha 增強功能多於穩定增強功能,這表明雲原生生態系統中仍有許多值得探索的地方。
主要主題
卷快照操作走向穩定
此功能提供了一種標準方式來觸發卷快照操作,並允許使用者在任何 Kubernetes 環境和支援的儲存提供商上以可移植的方式整合快照操作。
此外,這些 Kubernetes 快照原語作為基本構建塊,能夠為 Kubernetes 開發高階的企業級儲存管理功能,包括應用程式或叢集級別的備份解決方案。
請注意,快照支援要求 Kubernetes 發行商捆綁快照控制器、快照 CRD 和驗證 webhook。叢集上還必須部署支援快照功能的 CSI 驅動程式。
Kubectl Debug 升級到 Beta 版
kubectl alpha debug
功能在 1.20 中升級到 Beta 版,成為 kubectl debug
。該功能直接從 kubectl 提供對常見除錯工作流的支援。此版本 kubectl 支援的故障排除場景包括:
- 透過建立使用不同容器映象或命令的 Pod 副本,對啟動時崩潰的工作負載進行故障排除。
- 透過新增帶有除錯工具的新容器,對無發行版容器進行故障排除,無論是在 Pod 的新副本中還是使用臨時容器。(臨時容器是預設未啟用的 Alpha 功能。)
- 透過建立在主機名稱空間中執行並具有主機檔案系統訪問許可權的容器,在節點上進行故障排除。
請注意,作為一個新的內建命令,kubectl debug
優先於任何名為“debug”的 kubectl 外掛。您必須重新命名受影響的外掛。
使用 kubectl alpha debug
的呼叫現已棄用,並將在後續版本中刪除。請更新您的指令碼以使用 kubectl debug
。有關 kubectl debug
的更多資訊,請參閱除錯執行中的 Pod。
Beta:API 優先順序和公平性
在 1.18 中引入的 Kubernetes 1.20 現在預設啟用 API 優先順序和公平性(APF)。這允許 kube-apiserver
按優先順序級別對傳入請求進行分類。
已更新的 Alpha:IPV4/IPV6
IPv4/IPv6 雙棧已重新實現,以根據使用者和社群反饋支援雙棧服務。這允許將 IPv4 和 IPv6 服務叢集 IP 地址分配給單個服務,並且還允許服務從單個 IP 棧過渡到雙 IP 棧,反之亦然。
GA:用於穩定性的程序 PID 限制
程序 ID (pid) 是 Linux 主機上的基本資源。在不觸及任何其他資源限制的情況下達到任務限制並導致主機不穩定是微不足道的。
管理員需要機制來確保使用者 Pod 不會導致 pid 耗盡,從而阻止主機守護程式(執行時、kubelet 等)執行。此外,重要的是要確保在 Pod 之間限制 pid,以確保它們對節點上其他工作負載的影響有限。在預設啟用一年後,SIG Node 將 PID 限制升級到 GA,包括 SupportNodePidsLimit
(節點到 Pod 的 PID 隔離)和 SupportPodPidsLimit
(限制每個 Pod 的 PID 的能力)。
Alpha:優雅的節點關機
使用者和叢集管理員期望 Pod 遵循預期的 Pod 生命週期,包括 Pod 終止。目前,當節點關機時,Pod 不會遵循預期的 Pod 終止生命週期,並且不會優雅地終止,這可能會導致某些工作負載出現問題。GracefulNodeShutdown
功能現在處於 Alpha 階段。GracefulNodeShutdown
使 kubelet 能夠感知節點系統關機,從而在系統關機期間優雅地終止 Pod。
重大變更
Dockershim 棄用
Dockershim,Docker 的容器執行時介面 (CRI) shim 正在被棄用。對 Docker 的支援已棄用,並將在未來版本中刪除。Docker 生產的映象將繼續在您的叢集中與所有符合 CRI 的執行時一起工作,因為 Docker 映象遵循開放容器倡議 (OCI) 映象規範。Kubernetes 社群已撰寫了一篇關於棄用的詳細博文,並附有專門的常見問題頁面。
Exec 探測超時處理
一個長期存在的關於 exec 探測超時的錯誤已修復,該錯誤可能會影響現有的 Pod 定義。在此修復之前,timeoutSeconds
欄位對於 exec 探測器未被遵守。相反,探測器會無限期執行,甚至超出其配置的截止時間,直到返回結果。隨著此更改,如果未指定值,將應用預設值 1 秒
,並且如果探測器花費的時間超過一秒,則現有 Pod 定義可能不再足夠。此修復添加了一個名為 ExecProbeTimeout
的功能門,它允許叢集操作員恢復到之前的行為,但這將在後續版本中鎖定和刪除。為了恢復到之前的行為,叢集操作員應將此功能門設定為 false
。
請查閱有關配置探測器的更新文件以獲取更多詳細資訊。
其他更新
升級到穩定版
值得注意的功能更新
釋出說明
您可以在發行說明中檢視 1.20 版本的完整詳細資訊。
版本可用性
Kubernetes 1.20 可在 GitHub 上下載。有一些很好的資源可以幫助您開始使用 Kubernetes。您可以在 Kubernetes 主網站上檢視一些互動式教程,或者使用 kind 在您的機器上使用 Docker 容器執行本地叢集。如果您想嘗試從頭開始構建叢集,請檢視 Kelsey Hightower 的Kubernetes the Hard Way 教程。
釋出團隊
這個版本的釋出得益於一群非常敬業的個人,他們在世界各地發生許多事情的情況下,作為一個團隊走到了一起。非常感謝釋出負責人 Jeremy Rickard,以及釋出團隊中的所有其他人,感謝他們相互支援,並努力為社群釋出 1.20 版本。
釋出徽標
raddest:形容詞,俚語。極好的;美妙的;酷的
Kubernetes 1.20 版本是迄今為止最酷的版本。
2020 年對我們許多人來說是充滿挑戰的一年,但 Kubernetes 貢獻者在此版本中交付了創紀錄數量的增強功能。這是一項巨大的成就,因此釋出負責人希望以輕鬆愉快的方式結束這一年,並向Kubernetes 1.14 - Caturnetes 致敬,其中有一隻名為 Humphrey 的“酷”貓。
Humphrey 是釋出負責人的貓,它有一個永久的 blep
(吐舌頭)。Rad 是 1990 年代在美國非常流行的俚語,雷射背景也是如此。Humphrey 的 1990 年代風格學校照片感覺是結束這一年的有趣方式。希望 Humphrey 和它的 blep 能在 2020 年底給您帶來一些歡樂!
釋出徽標由 Henry Hsu - @robotdancebattle 建立。
使用者亮點
- Apple 正在全球資料中心運營數千個節點的 Kubernetes 叢集。觀看 Alena Prokharchyk 的 KubeCon NA 主題演講,瞭解有關其雲原生之旅的更多資訊。
專案速度
CNCF K8s DevStats 專案彙總了與 Kubernetes 和各種子專案的速度相關的一些有趣資料點。這包括從個人貢獻到貢獻公司的數量的一切,是展示構建這個生態系統所付出的努力的深度和廣度的精彩例證。
在為期 11 周(9 月 25 日至 12 月 9 日)的 v1.20 釋出週期中,我們看到了來自 967 家公司和 1335 名個人(其中 44 名是首次貢獻 Kubernetes)的貢獻,他們來自 26 個國家。
生態系統更新
- KubeCon North America 在三週前剛剛結束,這是第二次以虛擬方式舉行的活動!所有演講現已可按需觀看,供任何仍需趕上進度的觀眾!
- 今年夏天早些時候,Kubernetes 社群成立了一個新的工作組,直接回應了美國各地發生的“黑人的命也是命”抗議活動。WG Naming 的目標是儘可能徹底地刪除 Kubernetes 專案中有害和不明確的語言,並以一種可移植到其他 CNCF 專案的方式進行。關於這項重要工作及其開展方式的精彩介紹性演講在2020 年北美 KubeCon 上發表,而這項工作的初步影響實際上可以在 v1.20 版本中看到。
- 此前已於今年夏天宣佈,Kubernetes 安全專家 (CKS) 認證在 Kubecon NA 期間釋出,可立即安排!遵循 CKA 和 CKAD 的模式,CKS 是一項基於效能的考試,側重於安全主題的能力和領域。這項考試面向當前的 CKA 持有者,特別是那些希望完善其在保護雲工作負載方面的基礎知識的人(我們所有人,對吧?)。
活動更新
KubeCon + CloudNativeCon Europe 2021 將於 2021 年 5 月 4 日至 7 日舉行!註冊將於 1 月 11 日開放。您可以在此處找到有關會議的更多資訊。請記住,CFP 將於太平洋時間 12 月 13 日星期日晚上 11:59 關閉!
即將舉行的釋出網路研討會
敬請期待將於明年 1 月舉行的即將釋出的網路研討會。
參與其中
如果您有興趣為 Kubernetes 社群做出貢獻,特別興趣小組 (SIG) 是一個很好的起點。其中許多可能與您的興趣相符!如果您想與社群分享一些東西,您可以參加每週的社群會議,或使用以下任何渠道:
- 在新版Kubernetes 貢獻者網站上了解更多關於如何為 Kubernetes 做出貢獻的資訊
- 在 Twitter 上關注我們 @Kubernetesio 獲取最新更新
- 在 Discuss 上加入社群討論
- 在 Slack 上加入社群
- 分享你的 Kubernetes 故事
- 在部落格上閱讀更多關於 Kubernetes 的動態
- 瞭解更多關於 Kubernetes 釋出團隊的資訊