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

AWS 中 Kubernetes 集群的要求

贡献者

您可以将AWS上的受管Amazon Elastic Kubernetes Service (EKS)集群或自管Kubernetes集群添加到BlueXP。在将集群添加到BlueXP之前、您需要确保满足以下要求。

备注 本主题使用 Kubernetes cluster ,其中 EKS 和自管理 Kubernetes 集群的配置相同。在配置不同的位置指定集群类型。

要求

Astra Trident

需要使用四个最新版本的 Astra Trident 之一。您可以直接从BlueXP安装或升级Astra Trident。您应该 "查看前提条件" 安装 Astra Trident 之前。

Cloud Volumes ONTAP

Cloud Volumes ONTAP for AWS 必须设置为集群的后端存储。 "有关配置步骤,请转至 Astra Trident 文档"

BlueXP连接器

必须使用所需权限在 AWS 中运行 Connector 。 在下方了解更多信息

网络连接

Kubernetes 集群和 Connector 之间以及 Kubernetes 集群和 Cloud Volumes ONTAP 之间需要网络连接。 在下方了解更多信息

RBAC 授权

必须在每个Kubernetes集群上授权BlueXP Connector角色。 在下方了解更多信息

准备连接器

要发现和管理Kubernetes集群、AWS需要使用BlueXP Connector。您需要创建新的 Connector 或使用具有所需权限的现有 Connector 。

创建新的 Connector

按照以下链接之一中的步骤进行操作。

将所需权限添加到现有 Connector

从 3.9.13 版开始,任何 new 创建的 Connectors 均包含三个新的 AWS 权限,用于发现和管理 Kubernetes 集群。如果您在此版本之前创建了 Connector ,则需要修改此 Connector 的 IAM 角色的现有策略以提供权限。

步骤
  1. 转至 AWS 控制台并打开 EC2 服务。

  2. 选择 Connector 实例,单击 * 安全性 * ,然后单击 IAM 角色的名称以查看 IAM 服务中的角色。

    AWS 控制台的屏幕截图,显示 Security 选项卡中 IAM 角色的名称。

  3. 在 * 权限 * 选项卡中,展开策略并单击 * 编辑策略 * 。

    AWS 控制台的屏幕截图,显示权限选项卡中的编辑策略按钮。

  4. 单击 * 。 JSON* ,然后在第一组操作下添加以下权限:

    • EC2:Describe注册

    • EKS:ListClusters

    • EKS:Describe集群

    • IAM:GetInstanceProfile

  5. 单击 * 查看策略 * ,然后单击 * 保存更改 * 。

查看网络连接要求

您需要在 Kubernetes 集群和 Connector 之间以及 Kubernetes 集群与为集群提供后端存储的 Cloud Volumes ONTAP 系统之间提供网络连接。

  • 每个 Kubernetes 集群都必须与 Connector 建立入站连接

  • 此连接器必须通过端口 443 与每个 Kubernetes 集群建立出站连接

提供此连接的最简单方法是,将连接器和 Cloud Volumes ONTAP 部署在与 Kubernetes 集群相同的 VPC 中。否则,您需要在不同的 VPC 之间设置 VPC 对等连接。

以下示例显示了同一 VPC 中的每个组件。

EKS Kubernetes 集群及其与同一 VPC 中的连接和 Cloud Volumes ONTAP 的架构图。

下面是另一个示例,显示了一个 EKS 集群在其他 VPC 上运行。在此示例中, VPC 对等关系可在 EKS 集群的 VPC 与连接器和 Cloud Volumes ONTAP 的 VPC 之间提供连接。

EKS Kubernetes 集群的架构图及其与独立 VPC 中的连接和 Cloud Volumes ONTAP 的连接。

设置 RBAC 授权

您需要在每个 Kubernetes 集群上授权 Connector 角色,以便 Connector 可以发现和管理集群。

要启用不同的功能,需要不同的授权。

备份和还原

备份和还原只需要基本授权。

添加存储类

要使用BlueXP添加存储类并监控集群中的后端更改、需要扩展授权。

安装 Astra Trident

要安装Astra Trident、您需要为BlueXP提供完全授权。

备注 安装Astra Trident时、BlueXP会安装Astra Trident后端和Kubernetes密钥、其中包含Astra Trident与存储集群通信所需的凭据。
步骤
  1. 创建集群角色和角色绑定。

    1. 您可以根据需要自定义授权。

      备份 / 还原

      添加基本授权,以便为 Kubernetes 集群启用备份和还原。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
          name: cloudmanager-access-clusterrole
      rules:
          - apiGroups:
                - ''
            resources:
                - namespaces
            verbs:
                - list
                - watch
          - apiGroups:
                - ''
            resources:
                - persistentvolumes
            verbs:
                - list
                - watch
          - apiGroups:
                - ''
            resources:
                - pods
                - pods/exec
            verbs:
                - get
                - list
                - watch
          - apiGroups:
                - ''
            resources:
                - persistentvolumeclaims
            verbs:
                - list
                - create
                - watch
          - apiGroups:
                - storage.k8s.io
            resources:
                - storageclasses
            verbs:
                - list
          - apiGroups:
                - trident.netapp.io
            resources:
                - tridentbackends
            verbs:
                - list
                - watch
          - apiGroups:
                - trident.netapp.io
            resources:
                - tridentorchestrators
            verbs:
                - get
                - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
          name: k8s-access-binding
      subjects:
          - kind: Group
            name: cloudmanager-access-group
            apiGroup: rbac.authorization.k8s.io
      roleRef:
          kind: ClusterRole
          name: cloudmanager-access-clusterrole
          apiGroup: rbac.authorization.k8s.io
      存储类

      添加扩展授权以使用BlueXP添加存储类。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
          name: cloudmanager-access-clusterrole
      rules:
          - apiGroups:
                - ''
            resources:
                - secrets
                - namespaces
                - persistentvolumeclaims
                - persistentvolumes
                - pods
                - pods/exec
            verbs:
                - get
                - list
                - watch
                - create
                - delete
                - watch
          - apiGroups:
                - storage.k8s.io
            resources:
                - storageclasses
            verbs:
                - get
                - create
                - list
                - watch
                - delete
                - patch
          - apiGroups:
                - trident.netapp.io
            resources:
                - tridentbackends
                - tridentorchestrators
                - tridentbackendconfigs
            verbs:
                - get
                - list
                - watch
                - create
                - delete
                - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
          name: k8s-access-binding
      subjects:
          - kind: Group
            name: cloudmanager-access-group
            apiGroup: rbac.authorization.k8s.io
      roleRef:
          kind: ClusterRole
          name: cloudmanager-access-clusterrole
          apiGroup: rbac.authorization.k8s.io
      安装{\f270通过}{\f151。}

      使用命令行提供完全授权并启用BlueXP以安装Astra Trident。

      eksctl create iamidentitymapping --cluster < > --region < > --arn < > --group "system:masters" --username system:node:{{EC2PrivateDNSName}}
    2. 将配置应用于集群。

      kubectl apply -f <file-name>
  2. 创建与权限组的标识映射。

    使用 eksctl

    使用eksctl在集群与BlueXP Connector的IAM角色之间创建IAM身份映射。

    下面提供了一个示例。

    eksctl create iamidentitymapping --cluster <eksCluster> --region <us-east-2> --arn <ARN of the Connector IAM role> --group cloudmanager-access-group --username system:node:{{EC2PrivateDNSName}}
    编辑 AWS-auth

    直接编辑AWS-auth ConfigMap、以便为BlueXP Connector的IAM角色添加RBAC访问权限。

    下面提供了一个示例。

    apiVersion: v1
    data:
      mapRoles: |
        - groups:
          - cloudmanager-access-group
          rolearn: <ARN of the Connector IAM role>
         username: system:node:{{EC2PrivateDNSName}}
    kind: ConfigMap
    metadata:
      creationTimestamp: "2021-09-30T21:09:18Z"
      name: aws-auth
      namespace: kube-system
      resourceVersion: "1021"
      selfLink: /api/v1/namespaces/kube-system/configmaps/aws-auth
      uid: dcc31de5-3838-11e8-af26-02e00430057c