简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

设置Amazon Web Services

提供者

要使用Astra Control Service管理Amazon Elastic Kubernetes Service (EKS)集群、需要执行几个步骤来准备Amazon Web Services项目。

快速开始设置Amazon Web Services

按照以下步骤快速入门,或者向下滚动到其余部分以了解完整详细信息。

一个 查看适用于Amazon Web Services的Astra Control Service要求

确保集群运行状况良好并运行受支持的Kubernetes版本、工作节点处于联机状态并运行Linux或Windows等。 了解有关此步骤的更多信息

两个 创建Amazon帐户

如果您还没有Amazon帐户、则需要创建一个帐户、以便可以使用EKS。 了解有关此步骤的更多信息

三个 安装Amazon Web Services CLI

安装AWS命令行界面、以便从命令行管理AWS。 按照分步说明进行操作

四个 可选:创建IAM用户

创建Amazon身份和访问管理(IAM)用户。您也可以跳过此步骤并将现有IAM用户与Astra Control Service结合使用。

五个 创建并附加权限策略

创建具有所需权限的策略、以使Astra Control Service能够与您的AWS帐户进行交互。

六个 保存IAM用户的凭据

保存IAM用户的凭据、以便将这些凭据导入到Astra Control Service中。

EKS集群要求

Kubernetes 集群必须满足以下要求,才能通过 Astra Control Service 发现和管理它。

Kubernetes 版本

集群运行的Kubernetes版本必须介于1.22到1.24之间。

映像类型

每个工作节点的映像类型必须为Linux。

集群状态

集群必须运行状况良好,并且至少有一个联机辅助节点,并且没有处于故障状态的辅助节点。

适用于Amazon FSX for NetApp ONTAP 的Astra Trident

如果您使用适用于NetApp ONTAP 存储后端的Amazon FSX、则需要安装Astra Trident。有关说明,请参见 "Astra Trident部署概述"。有关将Astra Trident与适用于NetApp ONTAP 的FSX结合使用的详细信息、请参见 "将 Astra Trident 与适用于 NetApp ONTAP 的 Amazon FSX 结合使用"

适用于Amazon Elastic Block Store (EBS)的CSI驱动程序

如果您使用Amazon EBS存储后端、则需要为EBS安装容器存储接口(Container Storage Interface、CSI)驱动程序(它不会自动安装)。

有关安装CSI驱动程序的说明、请参见详细信息。

Details
安装外部快照程序
  1. 创建卷快照CRD。

    对于Kubernetes 1.20及更高版本、请使用v5.0 Snapshot组件的v1 Snapshot CRD。

$ cat snapshot-setup.sh
#!/bin/bash
# Create volume snapshot CRDs
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
  1. 在所需命名空间中创建Snapshot控制器。编辑以下 YAML 清单以修改命名空间。

    对于Kubernetes 1.20及更高版本、请使用5.0版。

kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
将CSI驱动程序作为Amazon EKS加载项进行安装
  1. 为服务帐户创建Amazon EBS CSI驱动程序IAM角色。按照说明进行操作 "在Amazon文档中"、使用说明中的AWS命令行界面命令。

  2. 使用以下AWS命令行界面命令添加Amazon EBS CSI加载项、将括号<>中的信息替换为特定于您的环境的值。将<driver_role>替换为您在上一步中创建的EBS CSI驱动程序角色的名称:

    aws eks create-addon \
      --cluster-name <CLUSTER_NAME> \
      --addon-name aws-ebs-csi-driver \
      --service-account-role-arn arn:aws:iam::<ACCOUNT_ID>:role/<DRIVER_ROLE>
配置EBS存储类
  1. 将Amazon EBS CSI驱动程序GitHub存储库克隆到您的系统。

    git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
  2. 导航到动态配置示例目录。

    cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
  3. 从清单目录部署EBS SC存储类和EBS声明永久性卷声明。

    kubectl apply -f manifests/storageclass.yaml
    kubectl apply -f manifests/claim.yaml
  4. 描述EBS-SC存储类。

    kubectl describe storageclass ebs-sc

    您应看到描述存储类属性的输出。

创建Amazon帐户

如果您还没有Amazon帐户、则需要创建一个帐户来为Amazon EKS启用计费。

步骤
  1. 转至 "Amazon主页" 、选择右上角的*登录*、然后选择*从此处开始*。

  2. 按照提示创建帐户。

安装Amazon Web Services CLI

安装AWS命令行界面、以便从命令行管理AWS资源。

步骤
  1. 转至 "AWS命令行界面入门" 并按照说明安装CLI。

可选:创建IAM用户

创建IAM用户、以便您可以使用和管理AWS服务和资源、并提高安全性。您也可以跳过此步骤、并将现有IAM用户与Astra Control Service结合使用。

步骤
  1. 转至 "创建IAM用户" 并按照说明创建IAM用户。

创建并附加权限策略

创建具有所需权限的策略、以使Astra Control Service能够与您的AWS帐户进行交互。

步骤
  1. 创建一个名为`policy.json`的新文件。

  2. 将以下JSON内容复制到文件中:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "cloudwatch:GetMetricData",
                    "fsx:DescribeVolumes",
                    "ec2:DescribeRegions",
                    "s3:CreateBucket",
                    "s3:ListBucket",
                    "s3:PutObject",
                    "s3:GetObject",
                    "iam:SimulatePrincipalPolicy",
                    "s3:ListAllMyBuckets",
                    "eks:DescribeCluster",
                    "eks:ListNodegroups",
                    "eks:DescribeNodegroup",
                    "eks:ListClusters",
                    "iam:GetUser",
                    "s3:DeleteObject",
                    "s3:DeleteBucket",
                    "autoscaling:DescribeAutoScalingGroups"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 创建策略:

    POLICY_ARN=$(aws iam create-policy  --policy-name <policy-name> --policy-document file://policy.json  --query='Policy.Arn' --output=text)
  4. 将策略附加到 IAM 用户。将`<IAM用户名>`替换为您创建的IAM用户或现有IAM用户的用户名:

    aws iam attach-user-policy --user-name <IAM-USER-NAME> --policy-arn=$POLICY_ARN

保存IAM用户的凭据

保存IAM用户的凭据、以便让Astra Control Service能够识别该用户。

步骤
  1. 下载凭据。将`<IAM用户名>`替换为要使用的IAM用户的用户名:

    aws iam create-access-key --user-name <IAM-USER-NAME> --output json > credential.json
结果

此时将创建`credential.json`文件、您可以将凭据导入到Astra Control Service中。