iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
DevOps

SRE/K8S 碎碎念系列 第 26

D26 1.27 升級

  • 分享至 

  • xImage
  •  

K8S 1.26 升級 1.27 的項目比較沒有大的更動,以下節錄幾點

預設的 kubeAPIQPS 增加為 50

Kubernetes 1.27 中的 kubelet 會將預設的 kubeAPIQPS 增加為 50,並將 kubeAPIBurst 增加為 100 。修改後的預設值可確保 kubelet 能有效管理增加的工作負載。因此,Pod 啟動速度更快,且叢集作業更有效率

什麼是 kubelet

我們先來看看官方介紹:the component that runs on all of the machines in your cluster and does things like starting pods and containers

可以得知他是一個組件,並且在每個 node 上都有。並且專門負責告知 node 資訊、管理 pods 跟 containers

什麼是 kubeAPIQPS

kubeAPIQPS 的值表示每秒鐘允許的最大查詢數(QPS)

kubelet --kube-api-qps=50

是 Kubernetes 配置中的一個參數,用於控制 kubelet 與 Kubernetes API 服務器之間的請求速率。這在大型集群或高負載環境中尤為重要,因為它可以避免 kubelet 向 API 服務器發送過多請求,從而保護 API 服務器避免過載。總之,kubeAPIQPS 可以幫助您管理 kubelet 與 Kubernetes API 服務器之間的請求速率,以防止 API 服務器變得過載。kubelet 為了提高 Pod 起動性能,將默認值提高。還有以下原因

  1. default 為 5 會造成 hugely throttled(限制過多,導致處理速度下降)。以前在具有 50 個以上 Pod 的 node 中,經常在 Pod 啟動期間在 kubelet 上遇到 volume mount timeout
  2. 儘管調高,還是 PriorityLevel 和 FlowSchema 進行流量分級及優先 API resource 設定可以使用

Kubelet 內的 --container-runtime 移除

什麼時候會動到 container-runtime

在 Kubernetes 集群中,--container-runtime 參數用於設定 kubelet 使用哪種容器運行時來啟動和管理容器。kubelet 是負責在每個集群節點上運行容器並確保服務正常運行的 Kubernetes 組件。

以下是一些可能需要設置 --container-runtime 參數的情況:

  1. 使用不同的容器運行時:Kubernetes 支持多種容器運行時,例如 Docker、containerd 和 CRI-O。如果您想要在集群節點上使用非預設的容器運行時,則需要通過設定 -container-runtime 來指定。
  2. 測試或評估其他容器運行時:當您在為您的工作負載尋找最佳的容器運行時時,可能會希望測試不同的選項。在這種情況下,可以使用 -container-runtime 來設定不同的運行時。
  3. 舊版本 Kubernetes 節點引導:對於舊版本的 Kubernetes 集群,可能需要設定 -container-runtime 來手動指定所需的容器運行時。

1.27 改動什麼

kubelet 的 --container-runtime 參數已被移除。自 1.24 版本以來,Amazon EKS 的默認容器運行時已經是 containerd,這消除了指定容器運行時的需要。

從 Amazon EKS 1.27 版本開始,如果在啟動腳本中傳遞了 --container-runtime 參數,則會被忽略。這意味著,即使您將該參數添加到腳本中,系統也不會考慮其影響。

為了避免在節點引導過程中出現錯誤,您應該停止向 --kubelet-extra-args 傳遞 --container-runtime 參數。這樣可以確保節點引導過程正常進行,而不會因為指定了不再需要的 --container-runtime 參數而出錯。

新的 PVC 保留策略

什麼是 StatefulSets

我們都知道 deployment,他會針對 container spec 進行部署。StatefulSets 就跟 deployment 一樣,都是在管理應用程式。只是 StatefulSet controller 會為每一個 pod 產生一個固定的識別資訊,不會因為 pod reschedule 後有變動。所以適合穩定網絡身份、持久存儲或順序部署和擴展的應用程序,例如數據庫。****

什麼是PersistentVolumeClaim

Pod 使用 PersistentVolumeClaim 來請求儲存空間。PVCs 是與 PersistentVolumes(PVs)相關聯的資源;PVs 提供實際的存儲後端,而 PVCs 則代表對指定大小和訪問模式的存儲需求。

Kubernetes 1.27 可以控制 StatefulSets 的 PersistentVolumeClaims(PVCs)的生命周期。新的 PVC 保留策略允許指定在刪除 StatefulSet 或縮減 StatefulSet 中的副本數量時,根據 StatefulSet 規範模板生成的 PVCs 是自動刪除還是保留。


上一篇
D25 EKS 1.27
下一篇
D27
系列文
SRE/K8S 碎碎念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言