使用 Terraform 快速启动 EKS 服务

查看原文

本文介绍了如何使用 Terraform 启动 AWS EKS 服务。目前 AWS 提供了 Kubernetes 1.10 的服务,运行在 us-west-2, us-east-1, eu-west-1 这三个地区。在使用 Terraform 之前,你需要一个 AWS 账号,以及已经在本地配置好了 aws configure 之类的信息。

第一步:创建 VPC,配置 vpc, 子网,路由表,互联网网关。其中子网存放在某个可用区中,可通过 ${data.aws_availability_zones.available.names[count.index]} 获得当前 AZ。如果有私有/公开两种子网,可以自己稍微改造下,适当添加进 eip, nat_gateway 等配置信息(这里面没有写,可以自己探索一下)。

第二步,创建 iam role,以及 在上一步 vpc 里面建一个安全组,允许稍后 vpc 中的 ec2 实例可以访问到 k8s master api。这个安全组默认就允许所有流量就可以了。前面的 iam role 可以用 aws 默认提供的 arn:aws:iam::aws:policy/AmazonEKSClusterPolicy / arn:aws:iam::aws:policy/AmazonEKSServicePolicy

第三步,导出 kubectl 配置,新建 iam role, 这次是给 k8s workloads 建 ec2 的 iam。继续创建 安全组,和 AutoScaling Group。

接下里,初始化 ec2 实例的配置,加入 eks。

总体来说,Terraform 的使用体验比一步一步在 UI Console 里面点来点去好太多了,推荐使用。