描述
支持的购买方式:
后付费
预付费(用户余额支付)
示例
resource "tencentcloud_kubernetes_cluster" "tke-cluster1" {availability_zone = var.app_target.availability_zonevpc_id = var.app_target.vpc.idsubnet_ids = [var.app_target.subnet.id]cluster_cidr = "172.16.0.0/16"cluster_os = "tlinux3.1x86_64"cluster_os_type = "GENERAL"cluster_deploy_type = "MANAGED_CLUSTER"network_type = "GR"worker_config {count = 2availability_zone = var.app_target.availability_zoneinstance_type = "SA3.MEDIUM2"img_id = "img-eb30mz89"subnet_id = var.app_target.subnet.idcam_role_name = var.cloudapp_cam_role}labels = {"test1" = "test1""test2" = "test2"}resource_delete_options {resource_type = "CBS"delete_mode = "terminate"}}
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | region | string | 地域,如:ap-guangzhou,默认使用 provider 中定义的 region
也可以在 resource 中指定地域,覆盖默认设置 |
必填 | availability_zone | string | 可用区 |
必填 | vpc_id | string | VPC ID |
可选 | count | int | 资源数量,默认为 1
如果为 0 则不创建资源 |
可选 | activity_id | int | 计费活动 ID,保留字段 |
可选 | cluster_cidr | string | 用于分配集群容器和服务 IP 的 CIDR,如:10.1.0.0/14 |
可选 | service_cidr | string | 用于分配集群服务 IP 的 CIDR,如:"10.1.0.0/24" |
可选 | eni_subnet_ids | string[] | VPC-CNI 网络模式下,弹性网卡的子网 ID |
可选 | cluster_desc | string | 集群描述 |
可选 | cluster_os | string | 集群系统。centos7.2x86_64 或者 ubuntu16.04.1 LTSx86_64,默认取值为 ubuntu16.04.1 LTSx86_64 |
可选 | cluster_level | string | 集群等级,针对托管集群生效 |
可选 | ignore_cluster_cidr_conflict | boolean | 是否忽略 ClusterCIDR 冲突错误,默认不忽略 示例值:false |
可选 | ignore_service_cidr_conflict | boolean | 是否忽略 ServiceCIDR 冲突错误,仅在 VPC-CNI 模式生效,默认不忽略 示例值:false |
可选 | cluster_max_pod_num | int | 集群中每个 Node 上最大的 Pod 数量。取值范围 16~256。不为2的幂值时会向上取最接近的 2 的幂值 |
可选 | cluster_max_service_num | int | 集群最大的 service 数量。取值范围 32~32768,不为2的幂值时会向上取最接近的2的幂值。默认值256 |
可选 | container_runtime | enum | 集群使用的 runtime 类型,包括"docker"和"containerd"两种类型,默认为"docker" 枚举值: docker containerd |
可选 | cluster_os_type | enum | 容器的镜像版本,默认值为:GENERAL 枚举值: DOCKER_CUSTOMIZE GENERAL |
可选 | cluster_as_enabled | boolean | 是否启用集群节点自动扩缩容(创建集群流程不支持开启此功能) |
可选 | cluster_audit_enabled | boolean | 是否开启审计开关,默认不开启 开启集群审计后,会在日志服务 CLS 自动创建日志集和日志主题 也可以通过 cluster_audit_log_set_id、cluster_audit_log_topic_id 指定日志集 |
可选 | cluster_audit_log_set_id | string | 审计日志上传到的 logset 日志集 |
可选 | cluster_audit_log_topic_id | string | 审计日志上传到的 topic |
可选 | cluster_ipvs | boolean | 是否启用 IPVS |
可选 | cluster_deploy_type | enum | 集群类型 托管集群:MANAGED_CLUSTER 独立集群:INDEPENDENT_CLUSTER 枚举值: MANAGED_CLUSTER INDEPENDENT_CLUSTER |
可选 | node_name_type | string | 集群中节点 NodeName 类型(包括 hostname,lan-ip 两种形式,默认为lan-ip。 如果开启了 hostname 模式,创建节点时需要设置 HostName 参数,并且 InstanceName 需要和 HostName 一致) |
可选 | deletion_protection | boolean | 是否启用集群删除保护 |
可选 | resource_delete_options | Schema[] | 集群删除时资源的删除策略,目前支持 CBS(默认保留 CBS) Schema 类型详见:ResourceDeleteOptionSchema |
可选 | cluster_version | string | 集群版本,默认值为 1.28.3 版本 |
可选 | cluster_extra_args | Schema[] | Schema 类型详见:ClusterExtraArgSchema |
可选 | network_type | "VPC-CNI" | "GR" | 集群网络类型,包括 GR (全局路由)和 VPC-CNI 两种模式,默认为 GR |
可选 | worker_config | Schema[] | worker 节点配置 Schema 类型详见:TkeCvmCreateSchema |
可选 | labels | object | 节点 Label 配置 |
可选 | master_config | Schema[] | master 节点配置 Schema 类型详见:TkeCvmCreateSchema |
可选 | extension_addon | Schema[] | Schema 类型详见:ExtensionAddonSchema |
可选 | user_script | string | base64 编码的用户脚本,此脚本会在 k8s 组件运行后执行,需要用户保证脚本的可重入及重试逻辑 脚本及其生成的日志文件可在节点的 /data/ccs_userscript/ 路径查看,如果要求节点需要在进行初始化完成后才可加入调度,可配合 unschedulable 参数使用,在 userScript 最后初始化完成后,添加 kubectl uncordon nodename --kubeconfig=/root/.kube/config 命令使节点加入调度 |
可选 | user_script_raw | string | 原始的用户脚本,未经过 base64 编码 |
可选 | taints | Schema[] | kubernetes Taint Schema 类型详见:TaintSchema |
生成 | id | string | 资源实例 ID |
生成 | create_time | string | 资源创建时间 |
生成 | worker_instances_list | Schema[] | 节点列表信息,这里会列出所有的节点 Schema 类型详见:WorkerInstanceSchema |
生成 | node_instance_ids | string[] | 集群节点 CVM id |
生成 | kube_config | string | 集群 kubeconfig 文件,可用于直接访问集群 kube-apiserver |
生成 | kube_config_intranet | string | 集群内网 kubeconfig 文件,可用于直接访问集群 kube-apiserver |
数据结构
ResourceDeleteOptionSchema
描述
集群删除时资源的删除策略。
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | resource_type | string | 资源类型,可选值: CBS:云硬盘 CLB:负载均衡 CVM:云服务器 |
必填 | delete_mode | string | 删除集群时,CBS 资源的删除模式 terminate:销毁 retain:保留 集群删除时,其他资源默认为销毁。 |
可选 | skip_deletion_protection | boolean | 是否跳过开启删除保护的资源,默认 false 设置为 true 时不清理开启了删除保护的资源,CLB 有终端节点的情况也属于开了删除保护 |
ClusterExtraArgSchema
描述
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | kube_apiserver | string[] | kube-apiserver 自定义参数,参数格式为 ["k1=v1", "k1=v2"],
例如["max-requests-inflight=500","feature-gates=PodShareProcessNamespace=true,DynamicKubeletConfig=true"] |
可选 | kube_controller_manager | string[] | kube-controller-manager 自定义参数 |
可选 | kube_scheduler | string[] | kube-scheduler 自定义参数 |
TkeCvmCreateSchema
描述
用 CVM 创建 node 节点的参数定义。
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | availability_zone | string | 节点 CVM 的可用区 |
必填 | instance_type | string | 实例类型,如:S3.MEDIUM2 |
必填 | internet_max_bandwidth_out | int | 公网出带宽上限,单位:Mbps。 |
可选 | count | int | 节点数量 |
可选 | instance_name | string | 节点的实例名称 |
可选 | instance_charge_type | enum | 实例计费类型,默认后付费 枚举值: PREPAID:预付费 POSTPAID_BY_HOUR:按量付费 |
可选 | instance_charge_type_prepaid_period | int | 预付费时长,单位月,默认 12 个月 |
可选 | instance_charge_type_prepaid_renew_flag | enum | 续费标识 枚举值: NOTIFY_AND_AUTO_RENEW:通知过期且自动续费 NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费 DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费 |
可选 | internet_charge_type | InternetChargeTypeEnum | 网络计费方式 |
可选 | bandwidth_package_id | string | |
可选 | system_disk_type | TkeDiskType | 系统盘类型 |
可选 | system_disk_size | int | 系统盘大小,单位:GB,默认 50G |
可选 | data_disk | Schema[] | 数据盘配置 Schema 类型详见:DataDiskSchema |
可选 | img_id | string | 指定有效的镜像 ID,格式形如 img-xxx。 |
可选 | subnet_id | string | 子网 ID |
可选 | public_ip_assigned | boolean | 是否分配公网 IP。取值范围: TRUE:表示分配公网 IP FALSE:表示不分配公网 IP |
可选 | cam_role_name | string | CAM 角色名称,查看字段详情 |
可选 | security_group_ids | string[] | 为节点 CVM 设置安全组,不填则为默认安全组 |
可选 | password | string | 实例登录密码 |
可选 | user_data | string | 提供给实例使用的用户数据,已经过 base64 编码 |
可选 | user_data_raw | string | 提供给实例使用的用户数据,未经过 base64 编码 |
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 |
ExtensionAddonSchema
描述
参数说明
类型 | 名称 | 数据类型 | 说明 |
必填 | name | string | 扩展组件名称 |
必填 | param | string | 扩展组件信息(扩展组件资源对象的 json 字符串描述) |
TaintSchema
描述
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | key | string | Taint 的 Key 示例值:key1 |
可选 | value | string | Taint 的 Value 示例值:value1 |
可选 | effect | string | Taint 的 Effect 示例值:NoSchedule |
WorkerInstanceSchema
参数说明
类型 | 名称 | 数据类型 | 说明 |
可选 | instance_id | string | 实例 ID |
可选 | instance_role | string | 节点角色, 可选值:MASTER, WORKER, ETCD, MASTER_ETCD,ALL, 默认为 WORKER |
可选 | instance_state | string | 实例的状态 running:运行中 initializing:初始化中 failed:异常 |
可选 | failed_reason | string | 实例异常(或者处于初始化中)的原因 |
可选 | lan_ip | string | 实例内网 IP |