如何使用 Amazon EKS 在 AWS 上部署 Kubernetes 集群

在本文中,我们将学习如何在 AWS 上部署 Kubernetes 集群 亚马逊 EKS 以及如何安装和配置 AWS CLI 和 Kubectl 以在 Linux 中通过命令行与 EKS 集群交互。

在使用 Amazon Elastic Kubernetes Service 在 AWS 云上部署 Kubernetes 集群之前,请确保您拥有 AWS 账户。 如果您没有 AWS 账户,请查看我们的 亚马逊网络服务 (AWS) 简介 文章知道如何创建一个。

内容

  1. 1.设置EKS集群(主节点)
    1. 1.1。 创建 IAM 角色
    2. 1.2. 创建 EKS 集群
  2. 2. 创建安全凭证
  3. 3. 安装 AWS CLI
  4. 4. 配置 AWS CLI
  5. 5. 安装 Kubectl
  6. 6. 配置 Kubectl
  7. 结论

1.设置EKS集群(主节点)

要在 AWS 中创建 EKS 集群,您需要在手头创建一个 IAM 角色。

1.1。 创建 IAM 角色

Amazon EKS 托管的 Kubernetes 集群代表您调用其他 AWS 服务,以管理您在该服务中使用的资源。

您必须先使用以下 IAM 策略创建一个 IAM 角色,然后才能构建 Amazon EKS 集群:

AmazonEKSClusterPolicy

登录到您的 AWS 控制台并搜索“IAM”。 选择 IAM 服务以进入 IAM 控制台。

搜索 IAM 服务

在左侧选项中选择角色,然后单击创建角色。

创建角色

选择 AWS 服务并在用例选项中选择“EKS – 集群”。 选择后,单击“下一步”继续。

为角色选择可信实体为角色选择可信实体

确保添加了“AmazonEKSClusterPolicy”,默认情况下将添加它,因为我们在用例中选择了 EKS-Cluster。 单击下一步继续下一步。

为角色添加权限为角色添加权限

在下一步中,设置角色名称。 在这里,我们将角色命名为“ostechnix_eks”。 查看所有参数并单击最后的“创建”以创建角色。

设置角色名称设置角色名称

这里我们不为这个角色添加任何标签。 如果我们正在处理多个资源,那么使用标签来管理、识别和过滤资源将会很有用。

创建 IAM 角色创建 IAM 角色

刚刚创建了一个名为“ostechnix_eks”的新角色。

为 EKS 集群创建的 IAM 角色为 EKS 集群创建的 IAM 角色

1.2. 创建 EKS 集群

转到 AWS 控制台并使用“EKS”进行搜索。 选择“弹性 Kubernetes 服务”以进入 EKS 控制台。

搜索 EKS 服务搜索 EKS 服务

从“添加集群”下拉框中,选择“创建”集群选项。

添加新的 EKS 集群添加新的 EKS 集群

您将获得“配置集群”页面,您可以在其中命名集群,选择 Kubernetes 版本并选择我们在上一步中创建的集群服务角色。

在这里,我们将集群命名为“ostechnix”,并选择了 Kubernetes 版本 1.21。

配置集群配置集群

如果未找到角色,请刷新角色。 选择角色并单击“下一步”继续。

刷新角色刷新角色

在此“指定网络”中,您需要配置网络。 在这里,我们继续使用默认选项。

选择现有的VPC,VPC是Virtual Private Cloud 您可以在其中在您定义的虚拟网络中创建 AWS 资源。 继续使用默认 VPC 中可用的默认子网。

选择 IPv4 作为集群 IP 地址系列。 它是默认的。

指定网络详细信息指定网络详细信息

为集群端点访问选择“公共”,它只允许对您的集群进行公共访问。 如果您选择“私有”,它只启用对您的集群的私有访问。 在这里,我们将继续使用默认的 Public。

您可以继续使用默认的“网络加载项”,然后单击“下一步”。

端点访问和网络附加组件Enter 端点访问和网络附加组件详细信息

您将获得“配置日志记录”页面,您可以在其中选择要启用的日志类型。 默认情况下,所有类型都被禁用。 单击“下一步”继续。

配置日志记录详细信息配置日志记录详细信息

您将获得“审查和创建”页面。 查看我们配置的所有详细信息,然后单击底部的“创建”。

创建 EKS 集群创建 EKS 集群

集群创建正在进行中。 创建需要几分钟。

EKS 集群创建中EKS 集群创建中

创建了一个名为“ostechnix”的新 EKS 集群。 您可以在 AWS 控制台?Amazon EKS?集群中进行验证。

EKS 集群状态EKS 集群状态

接下来,我们需要安装和配置 AWS CLI 和 Kubectl 以从命令行与 EKS 集群交互。

要配置 AWS CLI 凭证,您需要在 AWS IAM 中创建安全凭证。

2. 创建安全凭证

登录 AWS 控制台并使用 IAM 进行搜索。 选择 IAM 进入 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
检查 AWS 版本检查 AWS 版本

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] ~]#
配置 AWS CLI配置 AWS CLI

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
检查 Kubectl 版本检查 Kubectl 版本

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"
检查 EKS 集群状态检查 EKS 集群状态

更新 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
使用 kubectl 命令获取服务详细信息使用 kubectl 命令获取服务详细信息

结论

在本文中,我们学习了如何预置 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开源虚拟化