This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.2. 创建 KubeletConfig CRD 来编辑 kubelet 参数
kubelet 配置目前被序列化为 Ignition 配置,因此可以直接编辑。但是,在 Machine Config Controller (MCC) 中同时添加了新的 kubelet-config-controller
。这可让您创建 KubeletConfig
自定义资源 (CR) 来编辑 kubelet 参数。
流程
运行:
oc get machineconfig
$ oc get machineconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令显示了可选择的可用机器配置对象列表。默认情况下,与 kubelet 相关的配置为
01-master-kubelet
和01-worker-kubelet
。要检查每个节点中最大 pod 数量的当前设置,请运行:
oc describe node <node-ip> | grep Allocatable -A6
# oc describe node <node-ip> | grep Allocatable -A6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
value: pods: <value>
.例如:
oc describe node ip-172-31-128-158.us-east-2.compute.internal | grep Allocatable -A6
# oc describe node ip-172-31-128-158.us-east-2.compute.internal | grep Allocatable -A6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要设置 worker 节点上的每个节点的最大 pod,请创建一个包含 kubelet 配置的自定义资源文件。例如:
change-maxPods-cr.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubelet 与 API 服务器进行交互的频率取决于每秒的查询数量 (QPS) 和 burst 值。如果每个节点上运行的 pod 数量有限,使用默认值(
kubeAPIQPS
为50
,kubeAPIBurst
为100
)就可以。如果节点上有足够 CPU 和内存资源,则建议更新 kubelet QPS 和 burst 率:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行:
oc label machineconfigpool worker custom-kubelet=large-pods
$ oc label machineconfigpool worker custom-kubelet=large-pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行:
oc create -f change-maxPods-cr.yaml
$ oc create -f change-maxPods-cr.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行:
oc get kubeletconfig
$ oc get kubeletconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令会返回
set-max-pods
。根据集群中的 worker 节点数量,等待每个 worker 节点被逐个重启。对于有 3 个 worker 节点的集群,这个过程可能需要大约 10 到 15 分钟。
查看 worker 节点的
maxPods
的变化 :oc describe node
$ oc describe node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证更改:
oc get kubeletconfigs set-max-pods -o yaml
$ oc get kubeletconfigs set-max-pods -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令会显示
True
状态和type:Success
流程
默认情况下,在对可用的 worker 节点应用 kubelet 相关的配置时,只允许一台机器不可用。对于大型集群来说,它可能需要很长时间才可以反映出配置的更改。在任何时候,您可以调整更新的机器数量来加快进程速度。
运行:
oc edit machineconfigpool worker
$ oc edit machineconfigpool worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
maxUnavailable
设为所需值。spec: maxUnavailable: <node_count>
spec: maxUnavailable: <node_count>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要当设置该值时,请考虑无法使用的 worker 节点数量,而不影响在集群中运行的应用程序。