上云无忧 > 文档中心 > 腾讯云容器服务 TKE 标准集群 - 节点资源预留说明
容器服务 TKE
腾讯云容器服务 TKE 标准集群 - 节点资源预留说明

文档简介:
TKE 需要占用节点一定的资源来运行相关组件(例如:kubelet、kube-proxy、Runtime 等),因此会造成节点资源总数与集群中可分配资源数存在差异。本文介绍 TKE 集群中的节点资源预留策略和注意事项,以便在部署应用时合理设置 Pod 的请求资源量和限制资源量。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
TKE 需要占用节点一定的资源来运行相关组件(例如:kubelet、kube-proxy、Runtime 等),因此会造成节点资源总数集群中可分配资源数存在差异。本文介绍 TKE 集群中的节点资源预留策略和注意事项,以便在部署应用时合理设置 Pod 的请求资源量和限制资源量。

节点可分配资源计算策略

计算公式

ALLOCATABLE = CAPACITY - RESERVED - EVICTION - THRESHOLD
默认情况下,除 RESERVED 外为100MiB,即 ALLOCATABLE = CAPACITY - RESERVED - 100MiB。

节点 CPU 预留规则

节点 CPU
预留规则
说明
1c <= CPU <= 4c
固定预留 0.1c
-
4c < CPU <= 64c
4c 以下预留 0.1c,超过 4c 部分预留 2.5%
例如:CPU = 32c预留资源 = 0.1 + (32 - 4) * 2.5% = 0.8c
64c < CPU <= 128c
4c 以下预留 0.1c,4c~64c 预留 2.5%,超过 64c 部分预留 1.25%
例如:CPU = 96c预留资源 = 0.1 + (64 - 4) * 2.5% + (96 - 64) * 1.25% = 2c
CPU > 128c
4c 以下预留 0.1c,4c~64c 预留 2.5%,64c~128c 预留 1.25%,超过 128c 部分预留 0.5%
例如:CPU = 196c预留资源 = 0.1 + (64 - 4) * 2.5% + (128 - 64) * 1.25% + (196 - 128) * 0.5%= 2.74c

节点内存预留规则

节点内存
预留规则
说明
1G <= 内存 <= 4G
固定预留 25%
例如:内存 = 2G预留资源 = 2 * 25% = 512MB
4G < 内存 <= 8G
4G 以下预留 25%,超过 4G 部分预留 20%
例如:内存 = 8G预留资源 = 4 * 25% + (8 - 4) * 20% = 1843MB
8G < 内存 <= 16G
4G 以下预留 25%,4G~8G 预留 20%,超过 8G 部分预留 10%
例如:内存 = 12G预留资源 = 4 * 25% + (8 - 4) * 20% + (12 - 8) * 10%= 2252MB
16G < 内存 <= 128G
4G 以下预留 25%,4G~8G 预留 20%,8G~16G 预留 10%,超过 16G 部分预留 6%
例如:内存 = 32G预留资源 = 4 * 25% + (8 - 4) * 20% + (16 - 8) * 10% + (32 - 16) * 6% = 3645MB
内存 > 128G
4G 以下预留 25%,4G~8G 预留 20%,8G~16G 预留 10%,16G~128G 预留 6%,超过 128G 部分预留 2%
例如:内存 = 320G预留资源 = 4 * 25% + (8 - 4) * 20% + (16 - 8) * 10% + (128 - 16) * 6% + (320 - 128) * 2% = 13475MB
说明
用户可以通过自定义 kubelet 参数的方式来修改 kube-reserved 以达到修改节点预留资源的目的,建议给节点组件预留充足的 CPU 和内存资源来保证节点的稳定性。

查看节点可分配资源

检查集群中可用的节点可分配资源,请执行以下命令,并将 NODE_NAME 替换为您要检查的节点的名称。输出结果包含CapacityAllocatable字段,并提供了针对 CPU、内存和临时存储的测量结果。
		
kubectl describe node NODE_NAME | grep Allocatable -B 7 -A 6

注意事项

该预留策略针对 k8s 1.16及以上版本、2022年6月24日后创建的新增节点自动生效,无需手动配置。
为保证业务稳定性,该预留策略不会对已有节点自动生效。因为该资源预留的计算方式可能会造成节点的可分配资源变少,对于资源水位较高的节点,可能会触发节点驱逐。
若您希望对已有节点应用该资源预留策略,您可以通过 容器服务控制台 将该节点在不直接销毁的情况下移出集群,然后添加已有节点,新添加的节点会默认执行该资源预留策略。
相似文档
  • 操作场景: 本文档指导您移出集群下的节点。 注意事项: 包年包月节点移出集群后不销毁。 按量计费节点移出节点可选择销毁或不销毁,如若不销毁,将继续扣费。 节点移出后再添加到集群将会进行重装系统,请谨慎操作。
  • 操作场景: 本文档指导您如何驱逐或封锁节点。 操作步骤: 封锁节点: 封锁(cordon)节点后,将不接受新的 Pod 调度到该节点,您需要手动取消封锁的节点。封锁节点后,如果节点之前已被 CLB 绑定作为后端目标节点,节点将从目标节点列表中移除。封锁节点有以下两种方法:
  • 操作场景: 设置节点的启动脚本可以帮助您在节点 ready 之前,对您的节点进行初始化工作,即当节点启动的时候运行配置的脚本,如果一次购买多台云服务器,自定义数据会在所有的云服务器上运行。
  • 操作场景: 如果您的业务需要进行深度学习、高性能计算等场景,您可以使用腾讯云容器服务支持 GPU 功能,通过该功能可以帮助您快速使用 GPU 容器。 创建 GPU 云服务器有以下多种方式: 新建 GPU 云服务器、 添加已有 GPU 云服务器、 新建 GPU 节点池。
  • 操作场景: 本文档指导您设置节点 Label。 使用限制: kubernetes 和 qcloud 相关标签禁用编辑和删除。 kubernetes 和 qcloud 标签为保留键,不支持添加。 目前只支持为单个节点设置标签,不支持批量设置。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部