在本文中,我们将学习如何在 AWS 上部署 Kubernetes 集群 亚马逊 EKS 以及如何安装和配置 AWS CLI 和 Kubectl 以在 Linux 中通过命令行与 EKS 集群交互。
在使用 Amazon Elastic Kubernetes Service 在 AWS 云上部署 Kubernetes 集群之前,请确保您拥有 AWS 账户。 如果您没有 AWS 账户,请查看我们的 亚马逊网络服务 (AWS) 简介 文章知道如何创建一个。
内容
1.设置EKS集群(主节点)
要在 AWS 中创建 EKS 集群,您需要在手头创建一个 IAM 角色。
1.1。 创建 IAM 角色
Amazon EKS 托管的 Kubernetes 集群代表您调用其他 AWS 服务,以管理您在该服务中使用的资源。
您必须先使用以下 IAM 策略创建一个 IAM 角色,然后才能构建 Amazon EKS 集群:
AmazonEKSClusterPolicy
登录到您的 AWS 控制台并搜索“IAM”。 选择 IAM 服务以进入 IAM 控制台。
在左侧选项中选择角色,然后单击创建角色。
选择 AWS 服务并在用例选项中选择“EKS – 集群”。 选择后,单击“下一步”继续。
确保添加了“AmazonEKSClusterPolicy”,默认情况下将添加它,因为我们在用例中选择了 EKS-Cluster。 单击下一步继续下一步。
在下一步中,设置角色名称。 在这里,我们将角色命名为“ostechnix_eks”。 查看所有参数并单击最后的“创建”以创建角色。
这里我们不为这个角色添加任何标签。 如果我们正在处理多个资源,那么使用标签来管理、识别和过滤资源将会很有用。
刚刚创建了一个名为“ostechnix_eks”的新角色。
1.2. 创建 EKS 集群
转到 AWS 控制台并使用“EKS”进行搜索。 选择“弹性 Kubernetes 服务”以进入 EKS 控制台。
从“添加集群”下拉框中,选择“创建”集群选项。
您将获得“配置集群”页面,您可以在其中命名集群,选择 Kubernetes 版本并选择我们在上一步中创建的集群服务角色。
在这里,我们将集群命名为“ostechnix”,并选择了 Kubernetes 版本 1.21。
如果未找到角色,请刷新角色。 选择角色并单击“下一步”继续。
在此“指定网络”中,您需要配置网络。 在这里,我们继续使用默认选项。
选择现有的VPC,VPC是Virtual Private Cloud 您可以在其中在您定义的虚拟网络中创建 AWS 资源。 继续使用默认 VPC 中可用的默认子网。
选择 IPv4 作为集群 IP 地址系列。 它是默认的。
为集群端点访问选择“公共”,它只允许对您的集群进行公共访问。 如果您选择“私有”,它只启用对您的集群的私有访问。 在这里,我们将继续使用默认的 Public。
您可以继续使用默认的“网络加载项”,然后单击“下一步”。
您将获得“配置日志记录”页面,您可以在其中选择要启用的日志类型。 默认情况下,所有类型都被禁用。 单击“下一步”继续。
您将获得“审查和创建”页面。 查看我们配置的所有详细信息,然后单击底部的“创建”。
集群创建正在进行中。 创建需要几分钟。
创建了一个名为“ostechnix”的新 EKS 集群。 您可以在 AWS 控制台?Amazon EKS?集群中进行验证。
接下来,我们需要安装和配置 AWS CLI 和 Kubectl 以从命令行与 EKS 集群交互。
要配置 AWS CLI 凭证,您需要在 AWS IAM 中创建安全凭证。
2. 创建安全凭证
登录 AWS 控制台并使用 IAM 进行搜索。 选择 IAM 进入 IAM 控制台。
选择右侧可用的“我的安全凭证”选项以创建和管理您的安全凭证。
单击“访问密钥”下拉框,然后单击“创建新访问密钥”选项。
单击“创建新访问密钥”选项后,将创建密钥。 下载在 Linux 机器中配置 AWS CLI 的密钥。 您可以通过选中“显示访问密钥”来查看密钥。
在这个演示中,关键是,
- 访问密钥 ID: AKIAV7XU2AIJBX4EYKUO
- 秘密访问密钥: jicg/UZyZfb92zuYNNEAE0MVSJisHb0Mlgac2Doe
3. 安装 AWS CLI
AWS CLI 是一个命令行界面,可将所有 AWS 服务集中在一个终端中,让您可以使用单个工具操作众多 AWS 服务。
使用以下 curl
命令下载安装文件。 在这里,我们使用“CentOS Stream”来安装和配置 AWS CLI。
[[email protected] ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
使用以下命令解压缩安装程序文件。
[[email protected] ~]# unzip awscliv2.zip
使用以下命令安装 AWS CLI。
[[email protected] ~]# ./aws/install
You can now run: /usr/local/bin/aws --version
使用上述命令验证版本。
[[email protected] ~]# /usr/local/bin/aws --version
aws-cli/2.4.17 Python/3.8.8 Linux/4.18.0-358.el8.x86_64 exe/x86_64.centos.8 prompt/off
4. 配置 AWS CLI
使用以下命令配置 AWS CLI。 它将询问我们在第 2 节中生成的访问密钥 ID 和秘密访问密钥。
[[email protected] ~]# /usr/local/bin/aws configure AWS Access Key ID [None]: AKIAV7XU2AIJBX4EYKUO AWS Secret Access Key [None]: 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 Default region name [None]: Default output format [None]: [[email protected] ~]#
5. 安装 Kubectl
Kubernetes 通过 kubectl 命令行实用程序与集群 API 服务器通信。
使用以下 curl 从 Amazon S3 下载 Amazon EKS 提供的 kubectl 二进制文件的命令。
[[email protected] ~]# curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
使用以下命令为二进制文件添加执行权限。
[[email protected] ~]# chmod +x ./kubectl
将此二进制文件复制到路径中的文件夹并导出 $PATH
.
[[email protected] ~]# mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && PATH=$PATH:$HOME/bin
将 PATH 导出到 ~/.bashrc
:
[[email protected] ~]# echo ' PATH=$PATH:$HOME/bin' >> ~/.bashrc
Kubectl 已安装,您可以使用以下命令验证版本。
[[email protected] ~]# kubectl version --short --client
Client Version: v1.21.2-13+d2965f0db10712
6. 配置 Kubectl
目前 kubectl 不知道 EKS 主节点在 AWS 中的位置。 我们需要通过提及 地区 姓名和 集群名称。
使用以下命令检查 EKS 集群的状态。
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 describe-cluster --name ostechnix --query cluster.status "ACTIVE"
更新 kubeconfig 文件以使用 kubectl 与 EKS 集群交互。 它将从主节点获取所有配置到 kubeconfig 文件。
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 update-kubeconfig --name ostechnix Added new context arn:aws:eks:ap-south-1:411756528146:cluster/ostechnix to /root/.kube/config
通过使用以下命令检查服务来验证 kubectl。 您可以确保 Kubectl 能够与 EKS 集群连接。
[[email protected] ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 105m
结论
在本文中,我们学习了如何预置 Amazon EKS 集群以及如何在 Linux 平台上为 EKS 集群设置 AWS CLI 和 Kubectl。
我已经在 AWS 云上成功部署了 Kubernetes 集群,现在该怎么办? 你可能想知道。 请查看我们的下一个指南,了解如何在 AWS EKS 集群中添加节点组和配置工作节点。
- 如何将工作线程节点添加到 Amazon EKS 集群
资源:
- https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html
Amazon EKSAmazon Elastic Kubernetes ServiceAWSAWS CLIAWS CloudCLI命令行DevOpsEKSElastic Kubernetes ServiceIT AutomationK8sKubeKubectlKubernetesKubernetes集群Kubernetes系列Kubernetes教程Linux开源虚拟化