example/01-startup/terraform/app-on-k8s/main.tf (54 lines of code) (raw):
provider "alicloud" {
profile = "default"
}
# 创建专有网络
resource "alicloud_vpc" "k8s" {
name = "k8s_demo"
cidr_block = "192.168.0.0/16"
}
# 创建 Worker 交换机,创建两个可用区
resource "alicloud_vswitch" "worker_1" {
name = "worker_1"
vpc_id = alicloud_vpc.k8s.id
cidr_block = "192.168.1.0/24"
availability_zone = "cn-hangzhou-h"
}
resource "alicloud_vswitch" "worker_2" {
name = "worker_2"
vpc_id = alicloud_vpc.k8s.id
cidr_block = "192.168.2.0/24"
availability_zone = "cn-hangzhou-i"
}
# 创建 Pod 交换机,创建两个可用区
resource "alicloud_vswitch" "pod_1" {
name = "pod_1"
vpc_id = alicloud_vpc.k8s.id
cidr_block = "192.168.100.0/24"
availability_zone = "cn-hangzhou-h"
}
resource "alicloud_vswitch" "pod_2" {
name = "pod_2"
vpc_id = alicloud_vpc.k8s.id
cidr_block = "192.168.101.0/24"
availability_zone = "cn-hangzhou-i"
}
## k8s 集群创建,创建前请确保在容器服务控制台已经做过服务授权
resource "alicloud_cs_managed_kubernetes" "kubernetes_cluster" {
name = var.k8s_name
worker_vswitch_ids = [alicloud_vswitch.worker_1.id, alicloud_vswitch.worker_2.id]
pod_vswitch_ids = [alicloud_vswitch.pod_1.id, alicloud_vswitch.pod_2.id]
worker_instance_types = var.worker_instance_types
worker_number = var.worker_number
install_cloud_monitor = true
proxy_mode = var.proxy_mode
password = var.node_login_password
service_cidr = var.service_cidr
pod_cidr = var.pod_cidr
cluster_spec = var.cluster_spec
new_nat_gateway = false
version = "1.18.8-aliyun.1"
slb_internet_enabled = false
dynamic "addons" {
for_each = var.cluster_addons
content {
name = lookup(addons.value, "name", var.cluster_addons)
config = lookup(addons.value, "config", var.cluster_addons)
}
}
}