本篇文章帶來的是 Kubernetes 1.20 的一些整理,到底 Kubernetes 1.20 有什麼改變以及要如何升級舊有的 Kubernetes 到 1.20
官方宣稱該版本有 42 個改進,其中 11 個改進是該內容正式畢業進入 stable 版本, 15 個轉移到 beta 版本而剩下 16 個則是進入 alpha。
1. Volume Snapshot Operations (Stable)
針對容器快照的相關操作正式進入穩定版,要注意的是這個功能必須要使用的 Storage 服務有支援,同時請記得,針對任何的儲存設備,可以使用 CSI 來安裝就使用 CSI。
盡量不要繼續使用 in-tree 的方式去銜接這些設備了,因為所有的維護與修改都轉移到 CSI driver 上
2. Kubectl Debug (Beta)
Kubectl alpha 之前的子指令 debug 已經正式轉移到 beta 版本,未來可以直接使用 kubectl debug 的指令來幫忙一些資源的驗證與處理。
譬如
a. 創建一個 pod 部署到指定的節點上並存取節點上的檔案系統來提供對節點的除錯功能
b. 針對運行 crash 的 pod 除錯
3. Dual IP Stack IPv4/IPv6 (Alpha)
IPv4/IPv6 功能重新實作,未來將可以對單一 Serivce 同時指派 ipv4 + ipv6 的地址,同時也可以針對現存單一 ipv4 的 service 進行轉換
4. Graceful node shutdown (Alpha)
過往刪除 Pod 時都會有所謂的 pod lifecycle 等階段來處理一切狀態,但是當節點被關機時,節點上方運行的 Pod 並不會遵循 Pod lifecycle 來處理。
這個新的功能將會讓 Kubelet 去感知到節點正在關閉,並且能夠針對正在運行的Pod去提供 graceful shutdown 的過程
更多的討論可以參考下列文章或是直接看官方全文,滿多功能都慢慢改變
另外要注意的是,每次改版都要注意 API 是否有改變名稱,非常推薦使用如 kube-no-trouble 這類型的工具去檢查當前部署資源的 APIVersion 是否有即將要被捨棄的,避免 k8s 更新後應用程式都無法部署上去的情況發生
https://faun.pub/whats-new-in-kubernetes-version-1-20-and-how-to-upgrade-to-1-20-x-5ea72f904e7d
「kubelet version」的推薦目錄:
kubelet version 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
想必大家一定都有使用過 CPU Limit 的經驗,透過這個機制能夠確保每個 Container 使用的 CPU 資源量,也可以保證每個節點上面會有足夠 CPU 供 Kubernetes 原生服務 (kubelet) 使用。
然而本篇文章就要來跟大家分享一個設定 CPU Limit 反而造成效能更差的故事,故事中當 CPU 設定為 800ms 的時候,卻發現實際運行的 Container 最高大概就只有 200ms 左右,這一切的一切都是因為 Liniux Kernel 的臭蟲導致!
一個直接的做法就是針對那些本來就沒有過高 CPU 使用量服務取消其 CPU Limit,作者於文章中也探討了一些機制要如何保護與應對這些被移除 CPU 限制的服務。
這個臭蟲於 Linux Kernel 4.19 後已經修復,但是要注意你使用的發行版本是否有有包含這個修復,作者列出一些已知的發行版本修復狀況
Debian: The latest version buster has the fix, it looks quite recent (august 2020). Some previous version might have get patched.
Ubuntu: The latest version Ubuntu Focal Fosa 20.04 has the fix.
EKS has the fix since December 2019, Upgrade your AMI if necessary.
kops: Since June 2020, kops 1.18+ will start using Ubuntu 20.04 as the default host image.
GKE: THe kernel fix was merged in January 2020. But it does looks like throttling are still happening.
有興趣的歡迎點選原文閱讀更多
https://erickhun.com/posts/kubernetes-faster-services-no-cpu-limits/