容器服务 新建原生节点

这篇说说通过控制台和YAML创建原生节点池的方法,包括前提条件、创建步骤、启动配置、运维功能及高级设置的详细参数说明。 控制台创建:登录容器服务控制台,在集群节点管理中选择节点池新建,选择原生节点类型并配置参数后创建。 YAML创建:通过MachineSet资源定义节点池,字段涵盖机型、付费模式、数据盘、安全组、自动伸缩等配置。 关键参数:原生节点支持资源托管和软件增值两种模式,提供故障自愈、自动伸缩、自定义脚本及O。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

这篇向你介绍如何通过控制台和 YAML 创建原生节点。

一、前提条件

·已登录 容器服务控制台。

·已创建 TKE 标准集群。如未创建,请参考 快速创建一个标准集群。

注意:说明:

注意:原生节点仅支持通过节点池管理。

二、通过控制台创建

1. 登录 容器服务控制台,选择左侧导航栏中的集群。

2. 在集群列表页中,单击集群 ID,进入该集群详情页。

3. 选择左侧菜单栏中的节点管理,在节点池中单击新建。

4. 选择节点类型为原生节点,单击创建。

5. 在新建页面,根据 创建参数说明 提示进行设置,

6. (可选)单击高级设置,查看或配置更多信息,详情请参见 高级设置。

7. 单击创建节点池即可。

三、通过 YAML 创建

原生节点池的 kubernetes 资源如下所示,YAML 字段详情请参见 创建参数说明:

apiVersion: node.tke.cloud.tencent.com/v1beta1kind: MachineSetspec: autoRepair: false #故障自愈开关 displayName: test healthCheckPolicyName: #自愈规则名称 instanceTypes: #机型规格 – S5.MEDIUM2 replicas: 1 #节点数 scaling: #自动扩缩容策略 createPolicy: ZonePriority maxReplicas: 1 subnetIDs: #节点池子网 – subnet-nnwwb64w template: metadata: annotations: node.tke.cloud.tencent.com/machine-cloud-tags: '[{"tagKey":"xxx","tagValue":"xxx"}]' #腾讯云标签 node.tke.cloud.tencent.com/custom-image: img-xxxxxxxx #自定义节点 OS 镜像 ID(选填,仅 Native 资源托管模式支持,详情见下方说明) spec: displayName: tke-np-mpam3v4b-worker #可自定义显示名称 deletePolicy: Random #移出策略 metadata: annotations: annotation-key1: annotation-value1 #自定义annotations labels: label-test-key: label-test-value #自定义labels providerSpec: type: Native #原生节点模式:Native(资源托管)/ NativeCVM(软件增值) value: dataDisks: #数据盘参数 – deleteWithInstance: true diskID: "" diskSize: 50 diskType: CloudPremium fileSystem: ext4 mountTarget: /var/lib/containerd instanceChargeType: PostpaidByHour #节点付费模式 keyIDs: #节点登录SSH参数 – skey-xxx lifecycle: #自定义脚本 postInit: echo "after node init" preInit: echo "before node init" management: #management参数设置,包含kubelet\\kernel\\nameserver\\hostname securityGroupIDs: #安全组配置 – sg-xxxxx systemDisk: #系统盘配置 diskSize: 50 diskType: CloudPremium encrypted: true #是否开启系统盘加密(选填) kmsKeyId: "xxx" #自定义 KMS 密钥 ID(选填) runtimeRootDir: /var/lib/containerd taints: #污点 非必填 – effect: NoExecute key: taint-key2 value: value2 type: Native

四、启动配置

参数项 YAML 字段 说明
节点池类型(必填) 字段名:spec.type字段值:Native Native 代表原生节点池。
原生节点模式(必填) 字段名:spec.template.spec.providerSpec.type字段值:Native(资源托管)/ NativeCVM(软件增值) 选择原生节点的运行模式。资源托管:底层资源由容器服务全权托管,节点不在 CVM 控制台显示;软件增值:在你账号下创建真实 CVM 实例,叠加 TKE Housekeeper 增值服务。两种模式的适用机型及计费说明详见 原生节点概述。
节点池名称(必填) 字段名:spec.displayname字段值:demo-machineset(自定义) 自定义,可根据业务需求等信息进行命名,方便后续资源管理。
计费模式(必填) 字段名:spec.template.spec.providerSpec.value.instanceChargeType字段值:PostpaidByHour(按量)/ PrepaidCharge(包月)/ UnderWriter(包销) 提供按量计费、包年包月、包销计费三种计费模式,请根据实际需求进行选择。其中包销计费仅适用于控制台支持的特定机型(如 L20 GPU 实例),具体可购买机型以控制台展示为准。
机型配置(必填) 机型:字段名:spec.instanceTypes字段值:S2.MEDIUM4(可参考控制台获取其他机型规格)系统盘:字段名:spec.template.spec.providerSpec.value.systemDisk.diskSize/diskType/encrypted/kmsKeyId字段值:diskSize: 50(支持自定义,大小需为10 的倍数,最小为 50G)diskType: CloudPremium / CloudSSD(系统盘类型,支持高性能 / SSD)encrypted: true / false(是否开启系统盘加密,布尔值)kmsKeyId: "xxx"(自定义 KMS 密钥 ID,字符串格式) 在“机型配置”窗口中参考以下信息按需选择:可用区:该选项用于过滤所选可用区下可用的实例类型。详情见 原生节点地域与可用区。机型:支持通过 CPU 核数、内存大小及实例类型进行筛选。系统盘:存储控制、调度节点运行的系统集合,新建大小设置 > 100GB;系统盘加密(该功能目前为白名单开放)属性在节点创建后不可更改,修改节点池的加密参数仅对新扩容的节点生效;系统盘加密不支持本地盘类型,且仅部分机型(如云硬盘支持加密的 S5、SA3 等机型)可开启加密。
数据盘 字段名:spec.template.spec.providerSpec.value.dataDisks字段值:diskSize: 同系统盘diskType: 同系统盘fileSystem: ext3/ext4/xfsmountTarget: /var/lib/containerd(挂载路径) 节点上挂载的首块数据盘(仅考虑云硬盘类型)格式化挂载路径默认为 /var/lib/container,此时系统将 “Kubelet/容器/镜像”的存储目录(/var/lib/kubelet、 /var/lib/containerd、 /var/lib/docker)都默认挂载到该路径下。节点上的其他数据盘,你可以自定义该盘的挂载路径。
公网带宽 字段名:spec.template.spec.providerSpec.value.internetAccessible字段值:详情见 原生节点开启公网访问。 公网带宽:开启公网访问需绑定 EIP,详情见 原生节点开启公网访问。
主机名 展示字段:metadata.annotationkey: "node.tke.cloud.tencent.com/hostname-pattern"value: "自定义" 操作系统内部的计算机名,默认为内网IP,节点 hostname 命名和主机名将保持一致。命名规则:1. 支持批量连续命名或指定模式串命名,要求 2-40 个字符,仅支持小写字母、数字、连字符 "-" 、点号 ".", 符号不能用于开头或结尾且不能连续使用。2. 主机名组成形式为:自定义主机名(hostname) + “.节点池id” + ".{R:k}",k 为本次活动内已经创建的实例数量。如:自定义为“work{R:2}”,则批量扩容主机名为“work.节点池id.0”、“work.节点池id.1”以此类推。注意:当集群“节点 hostname 命名模式”为手动模式时,节点池创建时才会展示该字段。
ssh 密钥(必填) 字段名:spec.template.spec.providerSpec.value.keyIDs字段值:skey-asxxxx(ssh 密钥 ID) 需通过 ssh 方式登录节点,若现有的密钥不合适,可以 创建密钥。
安全组(必填) 字段名:spec.template.spec.providerSpec.value.securityGroupIDs字段值:sg-a7msxxx(安全组 ID) 默认为创建集群时所设置的安全组,若现有的安全组不合适,可以 创建安全组。
数量(必填) 字段名:spec.replicas字段值:7(自定义) 对应节点池内维护的期望节点数量,请根据实际需求进行设置。例如,此处数量填写为5,则节点池将创建5台节点维护。
容器网络(必填) 字段名:spec.subnetIDs字段值:subnet-i2ghxxxx(容器子网 ID) 请根据实际需求选择合适的可用子网。1. 当你手动调节节点数量时,系统将按照子网列表顺序来尝试创建节点,如果顺序靠前的子网可以创建成功,则总在该子网创建。2. 若节点池开启了自动伸缩,将根据你配置的扩容策略选择合适的子网进行创建节点。

五、运维功能

参数项 YAML 字段 说明
故障自愈 字段名:spec.autoRepair字段值:true(开启)/ false(关闭) 可选项,推荐开启。该功能可实时检测原生节点上的各种异常情况并提供一定的自愈手段,包含:OS、Runtime、kubelet 异常等。
检查和自愈规则 字段名:spec.healthCheckPolicyName字段值:test-all(绑定故障自愈 CR 名称) 你可为当前节点池选择不同的故障自愈规则,每个节点池支持绑定一个规则。
自动伸缩 字段名:spec.scaling 开启后 CA 组件对该类节点池进行自动伸缩。备注:原生节点的自动伸缩功能由容器平台自研实现,普通节点的自动伸缩功能依赖云产品 弹性伸缩。
节点数量范围 字段名:spec.scaling.maxReplicas / minReplicas字段值:maxReplicas: 7(自定义)minReplicas: 2(自定义) 节点池内的节点数量受限于该范围内的最小值/最大值,若节点池开启了自动伸缩,原生节点数量将在设定的范围内自动调节。
扩容策略 字段名:spec.scaling.createPolicy字段值:ZonePriority(首选可用区优先)/ ZoneEquality(多可用区打散) 1. 首选可用区优先:弹性伸缩会在你首选的可用区优先执行扩缩容。若首选可用区无法扩缩容,才会在其他可用区进行扩缩容。2. 多可用区打散:在伸缩组指定的多可用区(即指定多个子网)之间尽最大努力均匀分配节点实例。只有配置了多个子网时该策略才能生效。
移出策略 字段名:spec.deletePolicy字段值:Random(随机)/Newest(优先移出最新实例)/Oldest(优先移出最旧实例) 1. 随机:缩容时系统会随机选择节点池中的节点进行移除。2. 优先移出最新实例:缩容时创建时间最晚的节点会被首先选中并移除。3. 优先移出最旧实例:缩容时创建时间最早的节点会被首先选中并移除。

六、高级设置

参数项 YAML 字段 说明
云标签 字段名:node.tke.cloud.tencent.com/machine-cloud-tags字段值:[{"tagKey":"xxx","tagValue":"xxx"}] 支持通过云标签对节点分账,节点池设置的云标签对池内所有节点生效。注意:原生节点池会默认继承集群标签,请确保此处云标签 key 的设置不会和集群设置的标签发生冲突。
Labels 字段名:spec.template.spec.metadata.labels字段值: key1: “value1”(label 的 key/value 为自定义) 节点属性,方便对节点进行筛选和管理,该节点池下所创建的节点均将自动增加设置的 Label。
Taints 字段名:spec.template.spec.taints字段值:effect: NoSchedule/PreferNoSchedule/NoExecute(填写 taints 类型) 节点属性,通常与 Tolerations 配合使用,确保不符合条件的 Pod 不能调度到该节点上,该节点池下所创建的节点均将自动增加设置的 Taints。
容器目录 字段名:spec.template.spec.runtimeRootDir字段值:/var/lib/containerd 勾选即可设置容器和镜像存储目录,例如 /var/lib/。
Management 字段名:spec.template.spec.providerSpec.value.management.kubeletArgs/kernelArgs/hosts/nameservers字段值:详情请参见 Management 参数介绍。 支持自定义配置 Kubelet 、内核、Hosts、Nameservers 参数,详情请参见 Management 参数介绍。
自定义脚本 字段名:spec.template.spec.providerSpec.value.lifecycle.preInit/postInit字段值:preInit: "echo hello"(节点初始化前执行脚本,自定义)postInit: "echo world"(节点初始化后执行脚本,自定义) 指定自定义数据来配置节点,提供节点初始化前和节点初始化后两个设置阶段。需确保脚本的可重入及重试逻辑,脚本及其生成的日志文件可在节点的 /usr/local/qcloud/tke/PreHook(PostInit)路径查看。
自定义节点 OS 镜像 字段名:spec.template.metadata.annotations["node.tke.cloud.tencent.com/custom-image"]字段值:镜像 ID(例如 img-xxxxxxxx,自定义) 仅 Native(资源托管)模式支持,用于指定节点系统盘使用的自定义 OS 镜像,仅对新增节点生效,不影响存量节点。使用限制:1. 镜像必须为你账号下的私有自定义镜像,不支持共享镜像或镜像市场镜像。2. 镜像状态必须为正常(NORMAL),否则建节点会失败。3. 镜像架构需与所选机型架构一致(如 x86_64 机型需搭配 x86_64 镜像),架构不匹配会被拒绝。4. 校验失败时建节点报错,可根据报错信息重试或更换镜像。
赞 (0)
上一篇 4天前
下一篇 4天前