新聞中心
配置容器運(yùn)行時 cgroup 驅(qū)動
容器運(yùn)行時頁面提到: 由于 kubeadm 把 kubelet 視為一個系統(tǒng)服務(wù)來管理,所以對基于 kubeadm 的安裝, 我們推薦使用 ?systemd ?驅(qū)動,不推薦 ?cgroupfs ?驅(qū)動。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供吳中網(wǎng)站建設(shè)、吳中做網(wǎng)站、吳中網(wǎng)站設(shè)計(jì)、吳中網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、吳中企業(yè)網(wǎng)站模板建站服務(wù),10余年吳中做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
此頁還詳述了如何安裝若干不同的容器運(yùn)行時,并將 ?systemd ?設(shè)為其默認(rèn)驅(qū)動。
配置 kubelet 的 cgroup 驅(qū)動
kubeadm 支持在執(zhí)行 ?kubeadm init? 時,傳遞一個 ?KubeletConfiguration? 結(jié)構(gòu)體。 ?KubeletConfiguration? 包含 ?cgroupDriver ?字段,可用于控制 kubelet 的 cgroup 驅(qū)動。
Note: 在版本 1.22 中,如果用戶沒有在 ?
KubeletConfiguration?中設(shè)置 ?cgroupDriver?字段, ?kubeadm init? 會將它設(shè)置為默認(rèn)值 ?systemd?。
這是一個最小化的示例,其中顯式的配置了此字段:
# kubeadm-config.yaml
kind: ClusterConfiguration
apiVersion: kubeadm.K8S.io/v1beta3
KubernetesVersion: v1.21.0
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd這樣一個配置文件就可以傳遞給 kubeadm 命令了:
kubeadm init --config kubeadm-config.yaml
Note:
Kubeadm 對集群所有的節(jié)點(diǎn),使用相同的 ?
KubeletConfiguration?。 ?
KubeletConfiguration?存放于 ?
kube-system? 命名空間下的某個 ConfigMap 對象中。
執(zhí)行 ?
init?、?
join?和 ?
upgrade?等子命令會促使 kubeadm 將 ?
KubeletConfiguration?寫入到文件 ?
/var/lib/kubelet/config.yaml? 中, 繼而把它傳遞給本地節(jié)點(diǎn)的 kubelet。
使用 cgroupfs 驅(qū)動
正如本指南闡述的:不推薦與 kubeadm 一起使用 ?cgroupfs ?驅(qū)動。
如仍需使用 ?cgroupfs?, 且要防止 ?kubeadm upgrade? 修改現(xiàn)有系統(tǒng)中 ?KubeletConfiguration ?的 cgroup 驅(qū)動, 你必須顯式聲明它的值。 此方法應(yīng)對的場景為:在將來某個版本的 kubeadm 中,你不想使用默認(rèn)的 ?systemd ?驅(qū)動。
如果你希望配置容器運(yùn)行時來使用 ?cgroupfs ?驅(qū)動, 則必須參考所選容器運(yùn)行時的文檔。
遷移到 systemd 驅(qū)動
要將現(xiàn)有 kubeadm 集群的 cgroup 驅(qū)動就地升級為 ?systemd?, 需要執(zhí)行一個與 kubelet 升級類似的過程。 該過程必須包含下面兩個步驟:
Note: 還有一種方法,可以用已配置了 ?
systemd?的新節(jié)點(diǎn)替換掉集群中的老節(jié)點(diǎn)。 按這種方法,在加入新節(jié)點(diǎn)、確保工作負(fù)載可以安全遷移到新節(jié)點(diǎn)、及至刪除舊節(jié)點(diǎn)這一系列操作之前, 只需執(zhí)行以下第一個步驟。
修改 kubelet 的 ConfigMap
- 運(yùn)行 ?
kubectl edit cm kubelet-config -n kube-system?。 - 修改現(xiàn)有 ?
cgroupDriver?的值,或者新增如下式樣的字段:
cgroupDriver: systemd
該字段必須出現(xiàn)在 ConfigMap 的 ?kubelet:? 小節(jié)下。
更新所有節(jié)點(diǎn)的 cgroup 驅(qū)動
對于集群中的每一個節(jié)點(diǎn):
- 執(zhí)行命令 ?
kubectl drain?,以 騰空節(jié)點(diǎn)--ignore-daemonsets - 執(zhí)行命令 ?
systemctl stop kubelet?,以停止 kubelet - 停止容器運(yùn)行時
- 修改容器運(yùn)行時 cgroup 驅(qū)動為 ?
systemd? - 在文件 ?
/var/lib/kubelet/config.yaml? 中添加設(shè)置 ?cgroupDriver: systemd? - 啟動容器運(yùn)行時
- 執(zhí)行命令 ?
systemctl start kubelet?,以啟動 kubelet - 執(zhí)行命令 ?
kubectl uncordon?,以 取消節(jié)點(diǎn)隔離
在節(jié)點(diǎn)上依次執(zhí)行上述步驟,確保工作負(fù)載有充足的時間被調(diào)度到其他節(jié)點(diǎn)。
流程完成后,確認(rèn)所有節(jié)點(diǎn)和工作負(fù)載均健康如常。
本文標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes配置cgroup驅(qū)動
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/djoidog.html


咨詢
建站咨詢
