描述
容器集群节点池,节点池概述
示例
resource "tencentcloud_kubernetes_node_pool" "lakehouse-compute-flighting" {name = "UPGRADE-COMPUTE-LAKEHOUSE"cluster_id = "cls-xxxxxx"max_size = 6min_size = 0vpc_id = "vpc-xxxxxx"subnet_ids = ["subnet-xxxxxx"]retry_policy = "IMMEDIATE_RETRY"multi_zone_subnet_policy = "PRIORITY"enable_auto_scale = falsenode_os = "centos7.8.0_x64"node_config {data_disk {disk_type = "CLOUD_PREMIUM"disk_size = 300}}auto_scaling_config {instance_type = "S5.SMALL1"system_disk_type = "CLOUD_PREMIUM"system_disk_size = 50security_group_ids = ["sg-xxxxxx"]host_name = "foundation-node"host_name_style = "UNIQUE"data_disk {disk_type = "CLOUD_HSSD"disk_size = 300}password = "xxxxxx"enhanced_security_service = falseenhanced_monitor_service = falseinstance_charge_type = "POSTPAID_BY_HOUR"}labels = {"product_flighting" = "lakehouse_flighting","service_group" = "compute"}}
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | region | string | 地域,如:ap-guangzhou,默认使用 provider 中定义的 region
也可以在 resource 中指定地域,覆盖默认设置 |
必填 | cluster_id | string | 容器集群 ID |
必填 | max_size | int | 弹性伸缩配置,最大实例数,取值范围为0-2000 |
必填 | min_size | int | 弹性伸缩配置,最小实例数,取值范围为0-2000 |
必填 | vpc_id | string | 弹性伸缩配置,VPC ID |
可选 | availability_zone | string | 可用区 |
可选 | count | int | 资源数量,默认为 1
如果为 0 则不创建资源 |
可选 | activity_id | int | 计费活动 ID,保留字段 |
可选 | name | string | 超级节点名称 |
可选 | subnet_ids | string[] | 弹性伸缩配置,子网 ID 列表 |
可选 | desired_capacity | int | 弹性伸缩配置,期望实例数,大小介于最小实例数和最大实例数之间 |
可选 | enable_auto_scale | boolean | 是否启用自动伸缩 |
可选 | retry_policy | string | 重试策略,可选值: IMMEDIATE_RETRY:立即重试,在较短时间内快速重试,连续失败超过一定次数(5次)后不再重试 INCREMENTAL_INTERVALS:间隔递增重试,随着连续失败次数的增加,重试间隔逐渐增大,前 10 次重试间隔与立即重试模式相同,后续逐步递增至10分钟、30分钟、60分钟、一天 NO_RETRY:不进行重试,直到再次收到用户调用或者告警信息后才会重试 |
可选 | scaling_mode | string | 扩缩容模式,可选值: CLASSIC_SCALING:经典方式,使用创建、销毁实例来实现扩缩容 WAKE_UP_STOPPED_SCALING:扩容优先开机。扩容时优先对已关机的实例执行开机操作,若开机后实例数仍低于期望实例数,则创建实例,缩容仍采用销毁实例的方式。用户可以使用 StopAutoScalingInstances 接口来关闭伸缩组内的实例。监控告警触发的扩容仍将创建实例 |
可选 | multi_zone_subnet_policy | string | 多可用区/子网策略,取值包括: PRIORITY:按照可用区/子网列表的顺序,作为优先级来尝试创建实例,如果优先级最高的可用区/子网可以创建成功,则总在该可用区/子网创建 EQUALITY:扩容出的实例会打散到多个可用区/子网,保证扩容后的各个可用区/子网实例数相对均衡 |
可选 | node_config | Schema[] | 节点配置 Schema 类型详见:NodeConfigSchema |
可选 | auto_scaling_config | Schema[] | 伸缩组配置 Schema 类型详见:AutoScalingConfigSchema |
可选 | labels | object | 节点 Label 数据 |
可选 | unschedulable | int | 设置加入的节点是否参与调度,默认值为0,表示参与调度;非0表示不参与调度, 待节点初始化完成之后,可执行 kubectl uncordon nodename 使 node 加入调度. |
可选 | taints | Schema[] | Kubernetes Taint Schema 类型详见:TaintSchema |
可选 | delete_keep_instance | boolean | 删除节点时是否保留 CVM 云服务器 |
可选 | deletion_protection | boolean | 是否开启删除保护 |
可选 | node_os | string | |
可选 | node_os_type | string | 容器的镜像版本,可选值: DOCKER_CUSTOMIZE:容器定制版 GENERAL:普通版本 默认值:GENERAL |
可选 | scaling_group_name | string | 伸缩组名称 |
可选 | zones | string[] | 弹性伸缩组的可用区列表,基础网络场景下必须指定可用区。多个可用区以填写顺序为优先级,依次进行尝试,直至可以成功创建实例。 |
可选 | default_cooldown | int | 默认冷却时间,单位秒,默认值为300 |
可选 | termination_policies | string[] | 销毁策略,目前长度上限为1。取值包括: OLDEST_INSTANCE:优先销毁伸缩组中最旧的实例 NEWEST_INSTANCE:优先销毁伸缩组中最新的实例 |
生成 | id | string | 资源实例 ID |
生成 | create_time | string | 资源创建时间 |
生成 | status | string | LifeState 状态,当前节点池生命周期状态包括: creating:创建中 normal:正常 updating:更新中 deleting:删除中 deleted:已删除 |
生成 | node_count | int | 节点总数 |
生成 | autoscaling_added_total | int | 自动管理的节点总数 |
生成 | manually_added_total | int | 手动管理的节点总数 |
生成 | launch_config_id | string | 启动配置 ID |
生成 | auto_scaling_group_id | string | 伸缩组 ID |
数据结构
NodeConfigSchema
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | mount_target | string | - |
可选 | docker_graph_path | string | - |
可选 | data_disk | Schema[] | 数据盘配置 Schema 类型详见:DataDiskSchema |
可选 | extra_args | string[] | 节点相关的自定义参数信息 |
可选 | user_data | string | base64 编码的用户脚本,此脚本会在 k8s 组件运行后执行,需要用户保证脚本的可重入及重试逻辑。脚本及其生成的日志文件可在节点的 /data/ccs_userscript/ 路径查看,如果要求节点需要在进行初始化完成后才可加入调度,可配合 unschedulable 参数使用,在 userScript 最后初始化完成后,添加 kubectl uncordon nodename --kubeconfig=/root/.kube/config 命令使节点加入调度 |
可选 | pre_start_user_script | string | - |
可选 | is_schedule | boolean | 设置加入的节点是否参与调度 |
可选 | desired_pod_num | int | 该节点属于 podCIDR 大小自定义模式时,可指定节点上运行的 pod 数量上限 |
可选 | gpu_args | Schema[] | GPU 相关的参数,包括驱动版本,CUDA 版本,CUDNN 版本以及是否开启 MIG Schema 类型详见:GPUArgsSchema |
DataDiskSchema
描述
描述了 k8s 节点数据盘相关配置与信息。
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | disk_type | enum | 云盘类型 示例值:CLOUD_PREMIUM 硬盘介质类型。取值范围: CLOUD_BASIC:表示普通云硬盘 CLOUD_PREMIUM:表示高性能云硬盘 CLOUD_BSSD:表示通用型 SSD 云硬盘 CLOUD_SSD:表示 SSD 云硬盘 CLOUD_HSSD:表示增强型 SSD 云硬盘 CLOUD_TSSD:表示极速型 SSD 云硬盘。 枚举值: LOCAL_BASIC LOCAL_SSD CLOUD_BASIC CLOUD_PREMIUM CLOUD_SSD CLOUD_HSSD CLOUD_TSSD |
必填 | file_system | string | 文件系统(ext3/ext4/xfs)
示例值:ext4 |
必填 | disk_size | int | 云盘大小(G)
示例值:50 |
必填 | auto_format_and_mount | boolean | 是否自动化格式盘并挂载
示例值:true |
必填 | disk_partition | string | 挂载设备名或分区名
示例值:/dev/vdb |
可选 | mount_target | string | 挂载目录
示例值:/var/lib/docker |
可选 | encrypt | string | 传入该参数用于创建加密云盘,取值固定为 ENCRYPT 示例值:ENCRYPT |
可选 | kms_key_id | string | 购买加密盘时自定义密钥,当传入该参数时。Encrypt 入参不为空 示例值:06a83929-0050-11ee-8cbc-5254001955d1 |
可选 | snapshot_id | string | 快照 ID,如果传入则根据此快照创建云硬盘,快照类型必须为数据盘快照 示例值:snap-2ubk61lh |
可选 | throughput_performance | int | 云硬盘性能,单位:MB/s。使用此参数可给云硬盘购买额外的性能
示例值:10 |
GPUArgsSchema
描述
GPU 相关的参数,包括驱动版本,CUDA 版本,CUDNN 版本以及是否开启 MIG
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | cuda | Schema[] | CUDA 版本信息 Schema 类型详见:DriverVersionSchema |
可选 | cudnn | Schema[] | CUDNN 版本信息 Schema 类型详见:CUDNNSchema |
可选 | custom_driver | Schema[] | 自定义 GPU 驱动信息 Schema 类型详见:CustomDriverSchema |
可选 | driver | Schema[] | GPU 驱动版本信息 Schema 类型详见:DriverVersionSchema |
可选 | mig_enable | boolean | 是否启用 MIG 特性 示例值:false |
DriverVersionSchema
描述
GPU 驱动版本信息。
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | name | string | GPU 驱动或者 CUDA 的名字 示例值:NVIDIA-Linux-x86_64-418.126.02.run |
必填 | version | string | GPU 驱动或者 CUDA 的版本 示例值:418.126.02 |
CUDNNSchema
描述
CUDNN 版本信息。
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | name | string | CUDNN 的名字 示例值:libcudnn7_7.5.0.56-1+cuda10.1_amd64.deb |
必填 | version | string | CUDNN 的版本 示例值:7.5.0 |
可选 | dev_name | string | CUDNN 的 Dev 名字 示例值:libcudnn7-dev_7.5.0.56-1+cuda10.1_amd64.deb |
可选 | doc_name | string | CUDNN 的 Doc 名字 示例值:libcudnn7-doc_7.5.0.56-1+cuda10.1_amd64.deb |
CustomDriverSchema
描述
自定义 GPU 驱动信息。
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | address | string | 自定义 GPU 驱动地址链接 示例值:https://tencent.com/NVIDIA-Linux-x86_64-460.32.03.run |
AutoScalingConfigSchema
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | instance_type | string | 实例类型,如:S3.MEDIUM2 |
可选 | backup_instance_types | string[] | 备份实例类型,如果 instance_type 指定的类型售罄,则使用备份类型 |
可选 | system_disk_type | TkeDiskType | 系统盘类型 |
可选 | system_disk_size | int | 系统盘大小 |
可选 | data_disk | Schema[] | |
可选 | instance_charge_type | enum | 实例计费类型。 PREPAID:预付费,即包年包月 POSTPAID_BY_HOUR:按小时后付费,按量付费 默认按量付费 枚举值: PREPAID:预付费 POSTPAID_BY_HOUR:按小时后付费,按量付费 |
可选 | instance_charge_type_prepaid_period | int | 预付费时长,单位为月,取值范围:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36。 |
可选 | instance_charge_type_prepaid_renew_flag | enum | 自动续费标识 枚举值: NOTIFY_AND_AUTO_RENEW NOTIFY_AND_MANUAL_RENEW DISABLE_NOTIFY_AND_MANUAL_RENEW |
可选 | spot_instance_type | string | - |
可选 | spot_max_price | string | 输入价格,如:"1" |
可选 | internet_charge_type | enum | 网络计费类型。默认取值:非带宽包用户默认与子机付费类型保持一致。 枚举值: BANDWIDTH_PREPAID:预付费按带宽结算 BANDWIDTH_POSTPAID_BY_HOUR:带宽按小时后付费 BANDWIDTH_PACKAGE:带宽包用户 TRAFFIC_POSTPAID_BY_HOUR:流量按小时后付费 |
可选 | bandwidth_package_id | string | 带宽包 ID |
可选 | internet_max_bandwidth_out | int | 公网出带宽上限,单位:Mbps。 |
可选 | public_ip_assigned | boolean | 是否分配公网 IP,与 internet_max_bandwidth_out 参数一同出现 当公网带宽大于0Mbps时,可自由选择开通与否,默认开通公网 IP;当公网带宽为0,则不允许分配公网 IP |
可选 | password | string | 实例登录密码 |
可选 | key_ids | string[] | - |
可选 | security_group_ids | string[] | 安全组 ID |
可选 | orderly_security_group_ids | string[] | 安全组 ID |
可选 | enhanced_security_service | boolean | - |
可选 | enhanced_monitor_service | boolean | - |
可选 | cam_role_name | string | CAM 角色名 |
可选 | instance_name | string | 实例名 |
可选 | host_name | string | - |
可选 | host_name_style | string | 可选值: ORIGINAL UNIQUE |
CvmDataDiskSchema
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | disk_type | TkeDiskType | 硬盘介质类型。取值范围: CLOUD_BASIC:表示普通云硬盘 CLOUD_PREMIUM:表示高性能云硬盘 CLOUD_BSSD:表示通用型 SSD 云硬盘 CLOUD_SSD:表示 SSD 云硬盘 CLOUD_HSSD:表示增强型 SSD 云硬盘 CLOUD_TSSD:表示极速型 SSD 云硬盘。 |
可选 | disk_size | int | 云硬盘大小,单位为 GB |
可选 | snapshot_id | string | 快照 ID |
可选 | delete_with_instance | boolean | 是否随实例一起销毁 |
可选 | encrypt | boolean | 数据盘是否加密,默认为 false |
可选 | throughput_performance | int | 云硬盘性能,单位:MB/s |
TaintSchema
描述
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | key | string | Taint 的 Key 示例值:key1 |
可选 | value | string | Taint 的 Value 示例值:value1 |
可选 | effect | string | Taint 的 Effect 示例值:NoSchedule |