设置使用 Amazon EKS - Amazon EKS

设置使用 Amazon EKS

AWS 资源通常具有访问限制,用于限制对创建这些资源的 AWS 实体的访问。因此,从一开始就在 AWS Command Line Interface 中建立正确的用户配置至关重要。此外,您还需要为本地计算机配备必要的工具,以便通过命令行高效地管理 Amazon EKS 集群。本主题将帮助您为集群的命令行管理做好准备。

步骤 1:设置 AWS CLI

AWS CLI 是与 AWS 服务一起使用的命令行工具,包括 Amazon EKS。该工具还可用于对从本地计算机访问 Amazon EKS 集群和其他 AWS 资源的 IAM 用户或角色进行身份验证。要通过命令行在 AWS 中预置资源,您需要获取 AWS 访问密钥 ID 和私有密钥,以便在命令行中使用。然后,您需要在 AWS CLI 中配置这些凭证。如果尚未安装 AWS CLI,请参阅《AWS Command Line Interface 用户指南》中的安装或更新 AWS CLI 的最新版本

创建访问密钥

  1. 登录到 AWS Management Console

  2. 在右上角,选择您的 AWS 用户名以打开导航菜单。例如,选择 webadmin。然后选择安全凭证

  3. 访问密钥下,选择创建访问密钥

  4. 选择命令行界面(CLI),然后选择下一步

  5. 选择创建访问密钥

  6. 选择下载 .csv 文件

配置AWS CLI

安装 AWS CLI 后,请按照以下步骤进行配置。有关更多信息,请参阅《AWS Command Line Interface 用户指南》中的配置 AWS CLI

  1. 在终端窗口中,输入以下命令:

    aws configure

    您还可以选择配置一个命名配置文件,例如 --profile cluster-admin。如果您在 AWS CLI 中配置了命名配置文件,则必须始终在后续命令中传递此标志。

  2. 输入 AWS 凭证。例如:

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: region-code Default output format [None]: json

获取安全令牌

如果需要,运行以下命令以获取 AWS CLI 的新安全令牌。有关更多信息,请参阅《AWS CLI 命令参考》中的 get-session-token

默认情况下,令牌的有效期为 15 分钟。要更改默认会话超时,请传递 --duration-seconds 标志。例如:

aws sts get-session-token --duration-seconds 3600

此命令将返回 AWS CLI 会话的临时安全凭证。您应看到以下响应输出:

{
    "Credentials": {
        "AccessKeyId": "ASIA5FTRU3LOEXAMPLE",
        "SecretAccessKey": "JnKgvwfqUD9mNsPoi9IbxAYEXAMPLE",
        "SessionToken": "VERYLONGSESSIONTOKENSTRING",
        "Expiration": "2023-02-17T03:14:24+00:00"
    }
}

验证用户身份

如果需要,可运行以下命令来验证用于终端会话的 IAM 用户身份(例如 ClusterAdmin)的 AWS 凭证。

aws sts get-caller-identity

此命令将返回为 AWS CLI 配置的 IAM 实体的 Amazon 资源名称(ARN)。您应看到以下示例响应输出:

{
    "UserId": "AKIAIOSFODNN7EXAMPLE",
    "Account": "01234567890",
    "Arn": "arn:aws:iam::01234567890:user/ClusterAdmin"
}

步骤 2:安装 Kubernetes 工具

要与 Kubernetes 集群通信,您需要一个与 Kubernetes API 进行交互的工具。此外,您还需要一些其他工具,例如用于管理本地计算机上 Kubernetes 环境的工具。

创建 AWS 资源

  • Amazon EKS 集群资源 – 如果您不熟悉 AWS,我们建议您安装 eksctleksctl 是一个基础设施即代码(IaC)实用程序,该实用程序可使用 AWS CloudFormation 来轻松创建 Amazon EKS 集群。该实用程序还会创建其他 Kubernetes 资源,例如服务账户。有关安装 eksctl 的说明,请参阅 eksctl 文档中的 Installation

  • AWS 资源 – 如果您习惯于自动预置和部署 AWS 基础设施,我们建议您安装 Terraform。Terraform 是由 HashiCorp 开发开源基础设施即代码(IaC)工具。该工具允许您使用高级配置语言 [例如 HashiCorp 配置语言(HCL)或 JSON] 来定义和预置基础设施。有关安装 Terraform 的说明,请参阅 Terraform 文档中的 Install Terraform

要安装 kubectl,请执行以下操作

kubectl 是一款开源命令行工具,用于与 Amazon EKS 集群上的 Kubernetes API 服务器进行通信。如果还没有在本地计算机上安装,请从以下选项中选择。

  • AWS 版本 – 要安装 Amazon EKS 支持的 kubectl 版本,请参阅 安装或更新 kubectl

  • 社区版本 – 要安装 kubectl 的最新社区版本,请参阅 Kubernetes 文档中的安装工具页面。

设置开发环境

  • 本地部署工具 – 如果您不熟悉 Kubernetes,可以考虑安装像 minikubekind 这样的本地部署工具。这些工具允许您在本地计算机上管理 Amazon EKS 集群。

  • 软件包管理器Helm 是 Kubernetes 一款常用的软件包管理器,该工具简化了复杂软件包的安装和管理。通过 Helm,可以更轻松地在 Amazon EKS 集群上安装和管理诸如 AWS 负载均衡器控制器之类的软件包。

后续步骤