您可以通过Terraform部署一个阿里云容器服务的Kubernetes托管版集群。
教程介绍
以下步骤及示例均已在Alibaba Cloud Shell 中集成。您可以在 Cloud Shell 中打开,快速体验通过Terraform自动创建、编排和管理Kubernetes集群。
本教程以如下Terraform模板为例。
// Instance_types data source for instance_type
data "alicloud_instance_types" "default" {
cpu_core_count = "${var.cpu_core_count}"
memory_size = "${var.memory_size}"
}
// Zones data source for availability_zone
data "alicloud_zones" "default" {
available_instance_type = "${var.worker_instance_type == "" ? data.alicloud_instance_types.default.instance_types.0.id : var.worker_instance_type}"
}
resource "alicloud_cs_managed_kubernetes" "k8s" {
name = "${var.k8s_name_prefix == "" ? format("%s-%s", var.example_name, format(var.number_format, count.index+1)) : format("%s-%s", var.k8s_name_prefix, format(var.number_format, count.index+1))}"
availability_zone = "${lookup(data.alicloud_zones.default.zones[count.index%length(data.alicloud_zones.default.zones)], "id")}"
new_nat_gateway = true
worker_instance_types = ["${var.worker_instance_type == "" ? data.alicloud_instance_types.default.instance_types.0.id : var.worker_instance_type}"]
worker_numbers = ["${var.k8s_worker_number}"]
worker_disk_category = "${var.worker_disk_category}"
worker_disk_size = "${var.worker_disk_size}"
password = "${var.ecs_password}"
pod_cidr = "${var.k8s_pod_cidr}"
service_cidr = "${var.k8s_service_cidr}"
install_cloud_monitor = true
kube_config = "~/.kube/config"
}
完成本教程后,您会创建以下资源。其中,容器服务没有任何附加费用,您只需要支付所使用资源(云服务器、 负载均衡等)的费用。
- Worker 实例(ECS)
- 实例规格:ecs.n2.medium
- 实例数量:3
- 系统盘:20G 高效云盘
- 负载均衡
- 实例数量:2
- 付费模式:按量付费
- 弹性公网 IP
- 实例数量:1
- 付费模式:使用流量计费
- NAT 网关
- 实例数量:1
- 付费模式:按量付费
具体计费信息,参见 ECS 计费概述、负载均衡按量计费、弹性公网 IP 按量计费、NAT 网关按量计费。
使用限制
在开始使用本教程前,确保您已经了解以下限制并满足相关要求:
创建托管版Kubernetes集群
完成以下操作,创建Kubernetes集群:
- 执行以下命令定位到用来创建Kubernetes集群的Terraform模板的目录。
cd ~/terraform-kubernetes-wordpress/kubernetes
- 执行init命令加载Alibaba Cloud Providers。
terraform init
- 执行以下命令部署集群。
terraform apply
说明 如果出现ErrManagedKuberneteRoleNotAttach
的错误,请检查所需服务是否开通,以及您的账号是否通过了实名认证同时账户余额大于100元。部署成功后,系统会返回集群ID,如下图所示。Kubernetes的Kube Config文件会存储在~/.kube目录下。您可以登录容器服务控制台查看通过Terraform创建的Kubernetes集群。
您可以通过以下参数自定义您的Kubernetes集群:- worker_instance_type:Worker实例规格
- worker_disk_category:Worker实例系统盘
- worker_disk_size:Worker实例系统盘容量
- ecs_password:Worker实例登录密码
- k8s_worker_number:Worker实例数量
- k8s_name_prefix:集群名称前缀
- 执行以下命令销毁创建的集群。
cd ~/terraform-kubernetes-wordpress/kubernetes terraform destroy