使用Terraform完成EKS的教程
EKS 是什么?
Amazon Elastic Kubernetes Service(EKS)は、コンテナ化されたアプリケーションをKubernetesでデプロイ、管理、スケーリングするためのAWSサービスです。
本文将通过教程来使用Terraform部署EKS集群。
-
- 前提条件
-
- Kubernetesとkubectlの基本的な知識
-
- AWSアカウントを所持
- AWS CLIを使える
克隆存储库
git clone https://github.com/hashicorp/learn-terraform-provision-eks-cluster
移动到克隆的目录中。
cd learn-terraform-provision-eks-cluster
这里有六个文件,它们用于 VPC、安全组以及 EKS 集群的配置。最终的配置将如下所示。
- 各ファイルの説明
vpc.tf使用AWS VPC模块来设置VPC、子网和可用区。为了本教程创建了一个新的VPC,不会影响现有的云环境和资源。
security-groups.tf 将为 EKS 集群提供所需的安全组配置。
eks-cluster.tfは、AWS EKSモジュールを使用してEKSクラスターをセットアップするために必要なすべてのリソース(AutoScalingグループなど)をプロビジョニングします。
output.tf定义了输出配置。
version.tf将Terraform的版本设为至少0.14。同时,还会设置所使用的提供者的版本。
初始化Terraform工作区
terraform init
应用配置文件
terraform apply
通过该地球表面改造计划的应用,将会提供总共53个资源(包括虚拟私有云、安全组、自动扩展组、EKS集群等)。
アプリケーションが正常に実行されると、端末はoutputs.tfで定義された出力を出力します。
如果您已经创建了EKS集群,那么您需要配置kubectl。
aws eks --region $(terraform output -raw region) update-kubeconfig --name $(terraform output -raw cluster_name)
Kubernetes集群的名称和区域与Terraform执行成功后显示的输出变量相对应。
部署并尝试访问Kubernetes仪表板。
要确保集群正确配置并正常运行,可以部署Kubernetes仪表板,并在本地浏览器中访问该集群。
部署KubernetesMetricsServer
1. 下载并解压度量服务器。
wget -O v0.3.6.tar.gz https://codeload.github.com/kubernetes-sigs/metrics-server/tar.gz/v0.3.6 && tar -xzf v0.3.6.tar.gz
将指标服务器部署到集群中。
kubectl apply -f metrics-server-0.3.6/deploy/1.8+/
3. 确认度量服务器已部署。
kubectl get deployment metrics-server -n kube-system
部署Kubernetes仪表盘
1. 我们将安排必要的资源在仪表板上。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
创建一个可以从本地机器的浏览器直接访问仪表盘的代理服务器。
kubectl proxy
3. 确认可以从这里访问Kubernetes仪表板:http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/。
认证仪表板
要使用Kubernetes仪表板,您需要创建ClusterRoleBinding并提供认证令牌。这将授予cluster-admin访问kubernetes-dashboard的权限。使用kubeconfig进行身份验证不是可选的。有关详细信息,请参阅Kubernetes文档。
创建ClusterRoleBinding资源。
kubectl apply -f https://raw.githubusercontent.com/hashicorp/learn-terraform-provision-eks-cluster/main/kubernetes-dashboard-admin.rbac.yaml
接下来,我们将生成认证令牌。
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep service-controller-token | awk '{print $1}')
3. 在仪表盘界面上,选择[Token],将接收到的整个Token复制,然后粘贴到仪表盘认证页面以进行登录。
使用此步骤来创建EKS集群,配置kubectl,并部署Kubernetes仪表盘的教程已经完成!
打扫
请在完成本教程后,不要忘记销毁所创建的资源。
terraform destroy