2.6 KiB
2.6 KiB
TKE 集群 / 节点池
TKE 集群
resource "tencentcloud_kubernetes_cluster" "main" {
cluster_name = "${local.name_prefix}-tke"
cluster_version = "1.28.3"
cluster_cidr = "172.16.0.0/16"
service_cidr = "10.96.0.0/16"
vpc_id = var.vpc_id
cluster_os = "tlinux2.4(tkernel4)x86_64"
cluster_type = "MANAGED_CLUSTER"
cluster_max_pod_num = 64
# 网络插件
network_type = "GR" # GR(GlobalRouter)或 VPC-CNI
# Master 节点(托管集群无需配置)
managed_cluster_internet_security_policies = ["0.0.0.0/0"]
tags = local.common_tags
}
节点池
resource "tencentcloud_kubernetes_node_pool" "default" {
name = "${local.name_prefix}-nodepool"
cluster_id = tencentcloud_kubernetes_cluster.main.id
max_size = 10
min_size = 1
vpc_id = var.vpc_id
subnet_ids = [var.subnet_ids["private-a"], var.subnet_ids["private-b"]]
retry_policy = "INCREMENTAL_INTERVALS"
desired_capacity = var.worker_count
enable_auto_scale = true
deletion_protection = local.is_prod
auto_scaling_config {
instance_type = var.instance_type # 例如 SA3.LARGE8
system_disk_type = "CLOUD_PREMIUM"
system_disk_size = 50
security_group_ids = [var.sg_id]
key_ids = [var.key_pair_id]
data_disk {
disk_type = "CLOUD_PREMIUM"
disk_size = 100
}
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
internet_max_bandwidth_out = 0
public_ip_assigned = false
}
node_config {
extra_args = [
"root-dir=/var/lib/kubelet"
]
}
labels = merge(local.common_tags, {
"node-pool" = "default"
})
}
获取 Kubeconfig
# 集群内网访问地址
output "cluster_id" { value = tencentcloud_kubernetes_cluster.main.id }
output "cluster_endpoint" { value = tencentcloud_kubernetes_cluster.main.pgw_endpoint }
output "kubeconfig" {
value = tencentcloud_kubernetes_cluster.main.kube_config
sensitive = true
}
附加组件(Addon)
# 安装 metrics-server
resource "tencentcloud_kubernetes_addon_attachment" "metrics_server" {
cluster_id = tencentcloud_kubernetes_cluster.main.id
name = "metrics-server"
version = "0.6.1"
}
# 安装 NodeLocal DNSCache
resource "tencentcloud_kubernetes_addon_attachment" "node_local_dns" {
cluster_id = tencentcloud_kubernetes_cluster.main.id
name = "node-local-dns"
}