使用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 集群的配置。最终的配置将如下所示。

スクリーンショット 2022-04-09 1.06.13.png
    各ファイルの説明

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
广告
将在 10 秒后关闭
bannerAds