您可以通过Terraform部署一个阿里云容器服务的Kubernetes托管版集群。

教程介绍

以下步骤及示例均已在Alibaba Cloud Shell教程目录(tutorial-terraform-managed-kubernetes)中集成。您可以通过点击代码块右上角的试用按钮,快速体验通过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 网关按量计费

使用限制

在开始使用本教程前,确保您已经了解以下限制并满足相关要求:

  • 保证您的账户有100元的余额并通过实名认证,否则无法创建按量付费的ECS实例和负载均衡。
  • 随集群一同创建的负载均衡实例只支持按量付费的方式。
  • Kubernetes集群仅支持专有网络VPC。
  • 您的每个账号默认可以创建的云资源有一定的配额,如果超过配额,集群创建失败。如果您需要提高配额,请提交工单申请。
    • 每个账号默认最多可以创建100个安全组。
    • 每个账号默认最多可以创建60个按量付费的负载均衡实例。
    • 每个账号默认最多可以创建20个EIP。
  • 在开始之前,确保您已开通了以下云服务:

创建托管版Kubernetes集群

完成以下操作,创建Kubernetes集群:
  1. 执行以下命令定位到用来创建Kubernetes集群的Terraform模板的目录。
    cd ~/terraform-kubernetes-wordpress/kubernetes
  2. 执行init命令加载Alibaba Cloud Providers
    terraform init
  3. 执行以下命令部署集群。
    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:集群名称前缀
  4. 执行以下命令销毁创建的集群。
    cd ~/terraform-kubernetes-wordpress/kubernetes
    terraform destroy