更新时间:2024-01-04 GMT+08:00

节点池配置管理

约束与限制

默认节点池DefaultPool不支持如下管理操作。

配置管理

为方便对CCE集群中的Kubernetes配置参数进行管理,CCE提供了配置管理功能,通过该功能您可以对核心组件进行深度配置,更多信息请参见kubelet

仅支持在v1.15及以上版本的集群中对节点池进行配置,V1.15以下版本不显示该功能。

  1. 登录CCE控制台。
  2. 单击集群名称进入集群,在左侧选择“节点管理”,在右侧选择“节点池”页签。
  3. 单击节点池名称后的“配置管理”
  4. 在侧边栏滑出的“配置管理”窗口中,根据业务需求修改Kubernetes的参数值:

    表1 kubelet组件配置

    参数

    参数说明

    默认值

    修改说明

    备注

    cpu-manager-policy

    CPU管理策略配置,详情请参见CPU调度

    • none:关闭工作负载实例独占CPU的功能,优点是CPU共享池的可分配核数较多。
    • static:开启工作负载实例独占CPU,适用于对CPU缓存和调度延迟敏感的场景。

    none

    -

    -

    kube-api-qps

    与kube-apiserver通信的QPS

    100

    -

    -

    kube-api-burst

    与kube-apiserver通信的burst

    100

    -

    -

    max-pods

    kubelet管理的pod上限

    -

    -

    pod-pids-limit

    限制Pod中的进程数

    -1

    -

    -

    with-local-dns

    是否使用本地IP作为该节点的ClusterDNS

    false

    -

    -

    event-qps

    事件创建QPS限制

    5

    -

    -

    allowed-unsafe-sysctls

    允许使用的不安全系统配置。

    CCE从1.17.17集群版本开始,kube-apiserver开启了pod安全策略,需要在pod安全策略的allowedUnsafeSysctls中增加相应的配置才能生效(1.17.17以下版本的集群可不配置)。详情请参见Pod安全策略开放非安全系统配置示例

    []

    -

    -

    over-subscription-resource

    节点超卖特性。

    设置为true表示开启节点超卖特性。

    false

    -

    -

    colocation

    节点混部特性。

    设置为true表示开启节点混部特性。

    false

    -

    -

    kube-reserved-mem

    system-reserved-mem

    节点内存预留。

    随节点规格变动,具体请参见节点预留资源策略说明

    -

    kube-reserved-mem,system-reserved-mem之和小于内存的一半

    topology-manager-policy

    设置拓扑管理策略。

    合法值包括:

    • restricted:kubelet 仅接受在所请求资源上实现最佳 NUMA对齐的Pod。
    • best-effort:kubelet会优先选择在 CPU 和设备资源上实现NUMA对齐的Pod。
    • none(默认):不启用拓扑管理策略。
    • single-numa-node:kubelet仅允许在 CPU和设备资源上对齐到同一NUMA节点的Pod。

    none

    -

    须知:

    请谨慎修改,修改topology-manager-policy和topology-manager-scope会重启kubelet,并且以更改后的策略重新计算容器实例的资源分配,这有可能导致已经运行的容器实例重启甚至无法进行资源分配。

    topology-manager-scope

    设置拓扑管理策略的资源对齐粒度。合法值包括:

    • container (默认):对齐粒度为容器级
    • pod:对齐粒度为pod级

    container

    resolv-conf

    容器指定DNS解析配置文件

    默认为空值

    -

    -

    runtime-request-timeout

    除长期运行的请求(pull、 logs、exec和attach)之外所有运行时请求的超时时长。

    默认为2m0s

    -

    v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。

    registry-pull-qps

    每秒钟可以执行的镜像仓库拉取操作限值。

    默认为5

    取值范围为1~50

    v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。

    registry-burst

    突发性镜像拉取的上限值,允许镜像拉取临时上升到所指定数量。

    默认为10

    取值范围为1~100,且取值必须大于等于registry-pull-qps的值

    v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。

    serialize-image-pulls

    开启时会通知kubelet每次仅拉取一个镜像。

    默认为true

    -

    v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。

    evictionHard: memory.available

    硬驱逐信号memory.available门限

    固定为100Mi

    -

    关于节点压力驱逐详情请参考节点压力驱逐

    须知:

    驱逐门限相关配置请谨慎修改,不合理的配置可能会导致节点频繁触发驱逐或节点已过载但未触发驱逐。

    nodefs与imagefs分别对应kubelet及容器引擎使用的文件系统分区。

    evictionHard: nodefs.available

    硬驱逐信号nodefs.available门限

    默认10%

    范围1%~99%

    evictionHard: nodefs.inodesFree

    硬驱逐信号nodefs.inodesFree门限

    默认5%

    范围1%~99%

    evictionHard: imagefs.available

    硬驱逐信号imagefs.available门限

    默认10%

    范围1%~99%

    evictionHard: imagefs.inodesFree

    硬驱逐信号imagefs.inodesFree门限

    默认为空,不设置

    范围1%~99%

    evictionHard: pid.available

    硬驱逐信号pid.available门限

    默认10%

    范围1%~99%

    evictionSoft: memory.available

    软驱逐信号memory.available门限

    默认为空,不设置

    范围100Mi~1000000Mi,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    evictionSoft: nodefs.available

    软驱逐信号nodefs.available门限

    默认为空,不设置

    范围1%~99%,若设置,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    evictionSoft: nodefs.inodesFree

    软驱逐信号nodefs.inodesFree门限

    默认为空,不设置

    范围1%~99%,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    evictionSoft: imagefs.available

    软驱逐信号imagefs.available门限

    默认为空,不设置

    范围1%~99%,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    evictionSoft: imagefs.inodesFree

    软驱逐信号imagefs.inodesFree门限

    默认为空,不设置

    范围1%~99%,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    evictionSoft: pid.available

    软驱逐信号pid.available门限

    默认为空,不设置

    范围1%~99%,需同时配置对应驱逐信号的evictionSoftGracePeriod来配置驱逐宽限期,此值要求大于对应硬驱逐信号的门限

    表2 kube-proxy组件配置

    参数

    参数说明

    默认值

    修改说明

    conntrack-min

    系统中最大的连接跟踪表项数目。

    可通过以下命令查询:

    sysctl -w net.nf_conntrack_max

    131072

    -

    conntrack-tcp-timeout-close-wait

    控制TCP连接在关闭状态下等待的时间。

    可通过以下命令查询:

    sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close_wait

    1h0m0s

    -

    表3 网络组件配置(仅CCE Turbo集群可见)

    参数

    参数说明

    默认值

    修改说明

    nic-minimum-target

    节点池级别的节点最少绑定容器网卡数

    默认:10

    -

    nic-maximum-target

    节点池级别的节点预热容器网卡上限检查值

    默认:0

    -

    nic-warm-target

    节点池级别的节点动态预热容器网卡数

    默认:2

    -

    nic-max-above-warm-target

    节点池级别的节点预热容器网卡回收阈值

    默认:2

    -

    表4 节点池Pod安全组配置(仅CCE Turbo集群可见)

    参数

    参数说明

    默认值

    修改说明

    security_groups_for_nodepool

    • 节点池上Pod默认使用的安全组,可填写安全组 ID,不配置则使用集群容器网络的默认安全组,并且最多可同时指定5个安全组ID,中间以英文分号(;)分隔。
    • 优先级低于SecurityGroup资源对象配置的安全组。

    -

    -

    表5 容器引擎Docker配置(仅使用Docker的节点池可见)

    参数

    参数说明

    默认值

    修改说明

    native-umask

    `--exec-opt native.umask

    normal

    不支持修改

    docker-base-size

    `--storage-opts dm.basesize

    0

    不支持修改

    insecure-registry

    不安全的镜像源地址

    false

    不支持修改

    limitcore

    容器core文件的大小限制,单位是Byte。

    如果不设置大小限制,可设置为infinity。

    5368709120

    -

    default-ulimit-nofile

    容器内句柄数限制

    {soft}:{hard}

    该值大小不可超过节点内核参数nr_open的值,且不能是负数。

    节点内核参数nr_open可通过以下命令获取:

    sysctl -a | grep nr_open

    image-pull-progress-timeout

    如果超时之前镜像没有拉取成功,本次镜像拉取将会被取消。

    默认为1m0s

    该参数在v1.25.3-r0版本开始支持

    表6 容器引擎Containerd配置(仅使用Containerd的节点池可见)

    参数

    参数说明

    默认值

    修改说明

    devmapper-base-size

    单容器可用数据空间

    0

    不支持修改

    limitcore

    容器core文件的大小限制,单位是Byte。

    如果不设置大小限制,可设置为infinity。

    5368709120

    -

    default-ulimit-nofile

    容器内句柄数限制

    1048576

    该值大小不可超过节点内核参数nr_open的值,且不能是负数。

    节点内核参数nr_open可通过以下命令获取:

    sysctl -a | grep nr_open

    image-pull-progress-timeout

    如果超时之前镜像没有拉取成功,本次镜像拉取将会被取消。

    默认为1m0s

    该参数在v1.25.3-r0版本开始支持

  5. 单击“确定”,完成配置操作。