您可以通过Terraform部署一个阿里云容器服务的Kubernetes托管版集群,并在该集群上部署一个WordPress应用。

教程介绍

以下步骤及示例均已在 Alibaba Cloud Shell 中集成,您可以在 Cloud Shell 中打开,快速体验通过Terraform来自动创建、编排和管理容器服务,以及完成在容器集群上应用的自动部署。

完成本教程后,您会创建以下资源。其中,容器服务没有任何附加费用,您只需要支付所使用资源(云服务器、 负载均衡等)的费用。

  • Worker 实例(ECS)
    • 实例规格:ecs.n2.medium
    • 实例数量:3
    • 系统盘:20G 高效云盘
  • 负载均衡
    • 实例数量:3
    • 付费模式:按量付费
  • 弹性公网IP
    • 实例数量:1
    • 付费模式:使用流量计费
  • NAT网关
    • 实例数量:1
    • 付费模式:按量付费

具体计费信息,参见 ECS计费概述负载均衡按量计费弹性公网IP按量计费NAT网关按量计费

使用限制

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

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

创建托管版Kubernetes集群

若您已有Kubernetes集群,需要配置集群凭证。您可以登录容器服务控制台,将您的集群凭证复制到~/.kube/config文件中。

完成以下操作,创建Kubernetes集群:
  1. 执行以下命令定位到用来创建Kubernetes集群的Terraform模板的目录。
    cd ~/terraform-kubernetes-wordpress/kubernetes
  2. 执行init命令加载Alibaba Cloud Providers
    terraform init
  3. 执行以下命令部署集群。
    terraform apply
    说明 如果出现 ErrManagedKuberneteRoleNotAttach 的错误,请检查所需服务是否开通,以及您的账号是否通过了实名认证同时账户余额大于100元。
    部署成功后,系统会返回集群ID,控制台显示如下输出。
    ...
    Outputs:
    cluster_id = [
        c0f2e04c77e234******
    ]
    ...
    vswitch_ids = [
        vsw-bp1c3hfcd6l8******
    ]

    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:集群名称前缀

部署WordPress应用

完成以下操作,将WordPress应用部署到之前创建的Kubernetes托管版集群中。

  1. 执行以下命令定位到用来部署WordPress应用的Terraform模板的目录。
    cd ~/terraform-kubernetes-wordpress/wordpress
  2. 执行init命令加载kubernetes providers。
    terraform init
  3. 执行以下命令部署应用。其中,需要显式指定MySQL的密码 ,也可以指定需要的WordPress和MySQL的版本。
    terraform apply -var 'mysql_password=Test12345'
    terraform apply -var 'mysql_version=5.6' -var 'wordpress_version=4.7.3' -var 'mysql_password=Test12345'
    说明 如果出现 ErrManagedKuberneteRoleNotAttach 的错误,请检查所需服务是否开通,以及您的账号是否通过了实名认证同时账户余额大于100元。
    部署成功后,控制台显示如下输出。
    ...
    Outputs:
    slb_ip = 35.197.xx.xx

    其中,slb_ip表示应用负载均衡的公网IP。在浏览器中访问该IP地址,可以看到您部署的WordPress应用。

销毁应用

按照以下步骤完成操作,销毁您部署的应用。
  1. 执行以下命令定位到用来部署WordPress应用的Terraform模板的目录。
    cd ~/terraform-kubernetes-wordpress/wordpress
  2. 执行以下命令销毁您部署的WordPress应用。
    terraform destroy -var 'mysql_password=Test12345'
  3. 执行以下命令定位到用来创建Kubernetes集群的Terraform模板的目录。
    cd ~/terraform-kubernetes-wordpress/kubernetes
  4. 执行以下命令销毁您创建的Kubernetes集群。
    terraform destroy