tencent cloud

文档反馈

新建原生节点

最后更新时间:2024-06-14 16:30:50
    本文向您介绍如何通过控制台和 YAML 创建原生节点。

    前提条件

    已创建 TKE 标准集群。如未创建,请参考 快速创建一个标准集群
    说明:
    原生节点仅支持通过节点池管理。

    通过控制台创建

    1. 登录 容器服务控制台,选择左侧导航栏中的集群
    2. 在集群列表页中,单击集群 ID,进入该集群详情页。
    3. 选择左侧菜单栏中的节点管理 > 节点池,进入节点池页面。
    4. 单击新建节点池,在新建节点池页面,参考 创建参数说明 提示进行设置,如下图所示:
    
    
    
    5. (可选)单击高级设置,查看或配置更多信息,如下图所示:
    
    
    
    6. 单击创建节点池即可。

    通过 YAML 创建

    原生节点池的 kubernetes 资源如下所示,YAML 字段可以参考 创建参数说明
    apiVersion: node.tke.cloud.tencent.com/v1beta1
    kind: MachineSet
    spec:
    type: Native
    displayName: mstest
    replicas: 2
    autoRepair: true
    deletePolicy: Random
    healthCheckPolicyName: test-all
    instanceTypes:
    - C3.LARGE8
    subnetIDs:
    - subnet-xxxxxxxx
    - subnet-yyyyyyyy
    scaling:
    createPolicy: ZonePriority
    maxReplicas: 100
    template:
    spec:
    displayName: mtest
    runtimeRootDir: /var/lib/containerd
    unschedulable: false
    metadata:
    labels:
    key1: "val1"
    key2: "val2"
    providerSpec:
    type: Native
    value:
    instanceChargeType: PostpaidByHour
    lifecycle:
    preInit: "echo hello"
    postInit: "echo world"
    management:
    hosts:
    - Hostnames:
    - test
    IP: 22.22.22.22
    nameservers:
    - 183.60.83.19
    - 183.60.82.98
    - 8.8.8.8
    metadata:
    creationTimestamp: null
    securityGroupIDs:
    - sg-xxxxxxxx
    systemDisk:
    diskSize: 50
    diskType: CloudPremium

    创建参数说明

    参数所属模块
    参数项
    YAML 字段
    说明
    启动配置
    节点池类型
    字段名:spec.type
    字段值:Native
    Native 代表原生节点池。
    节点池名称
    字段名:spec.displayname
    字段值:demo-machineset(自定义)
    自定义,可根据业务需求等信息进行命名,方便后续资源管理。
    计费模式
    字段名:spec.template.spec.providerSpec.value.instanceChargeType
    字段值:PostpaidByHour(按量)/ PrepaidCharge(包月)
    提供按量计费、包年包月两种计费模式,请根据实际需求进行选择。
    机型配置
    机型:
    字段名:spec.instanceTypes
    字段值:S2.MEDIUM4(可参考控制台获取其他机型规格)
    
    系统盘:
    字段名:spec.template.spec.providerSpec.value.systemDisk.diskSize/diskType
    字段值:
    diskSize: 50(支持自定义,大小需为10 的倍数,最小为 50G) diskType: CloudPremium / CloudSSD(系统盘类型,支持高性能 / SSD)
    在“机型配置”窗口中参考以下信息按需选择:
    可用区:该选项用于过滤所选可用区下可用的实例类型。
    机型:支持通过 CPU 核数、内存大小及实例类型进行筛选。
    系统盘:存储控制、调度节点运行的系统集合,新建大小设置 > 100GB。
    数据盘
    字段名:spec.template.spec.providerSpec.value.dataDisks
    字段值:
    diskSize: 同系统盘
    diskType: 同系统盘
    fileSystem: ext3/ext4/xfs
    mountTarget: /var/lib/containerd(挂载路径)
    存储业务数据,推荐格式化挂载。
    公网带宽
    字段名:spec.template.spec.providerSpec.value.internetAccessible 字段值:详情见 原生节点开启公网访问
    公网带宽:开启公网访问需绑定 EIP,详情见 原生节点开启公网访问
    主机名
    展示字段:metadata.annotation
    key: "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. 若节点池开启了自动伸缩,将根据您配置的扩容策略选择合适的子网进行创建节点。
    运维功能
    故障自愈
    字段名: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. 多可用区打散:在伸缩组指定的多可用区(即指定多个子网)之间尽最大努力均匀分配节点实例。只有配置了多个子网时该策略才能生效。
    高级参数
    Labels
    字段名:spec.template.spec.metadata.labels
    字段值: key1: “value1”(label 的 key/value 为自定义)
    节点属性,方便对节点进行筛选和管理,该节点池下所创建的节点均将自动增加设置的 Label。
    Taints
    字段名:spec.template.spec.metadata.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)路径查看。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持