Google Cloud 中的 Kubernetes 集群的要求
您可以使用BlueXP在Google中添加和管理受管Google Kubernetes Engine (GKEE)集群和自管Kubernetes集群。在将集群添加到BlueXP之前、请确保满足以下要求。
|
本主题使用 Kubernetes cluster ,其中 GKE- 和自管理 Kubernetes 集群的配置相同。在配置不同的位置指定集群类型。 |
要求
- Astra Trident
-
需要使用四个最新版本的 Astra Trident 之一。您可以直接从BlueXP安装或升级Astra Trident。您应该 "查看前提条件" 安装 Astra Trident 之前
- Cloud Volumes ONTAP
-
Cloud Volumes ONTAP 必须与Kubernetes集群位于同一租户帐户、工作空间和连接器下的BlueXP中。 "有关配置步骤,请转至 Astra Trident 文档"。
- BlueXP连接器
-
必须使用所需权限在 Google 中运行 Connector 。 在下方了解更多信息。
- 网络连接
-
Kubernetes 集群和 Connector 之间以及 Kubernetes 集群和 Cloud Volumes ONTAP 之间需要网络连接。 在下方了解更多信息。
- RBAC 授权
-
无论是否使用Active Directory、BlueXP都支持启用了RBAC的集群。必须在每个GKE集群上授权BlueXP Connector角色。 在下方了解更多信息。
准备连接器
要发现和管理Kubernetes集群、需要使用Google中的BlueXP Connector。您需要创建新的 Connector 或使用具有所需权限的现有 Connector 。
将所需权限添加到现有 Connector (以发现受管 GKEE 集群)
如果要发现受管 GKEE 集群,您可能需要修改 Connector 的自定义角色以提供权限。
-
在中 "云控制台"下,转到 * 角色 * 页面。
-
使用页面顶部的下拉列表,选择包含要编辑的角色的项目或组织。
-
单击一个自定义角色。
-
单击 * 编辑角色 * 以更新角色的权限。
-
单击 * 添加权限 * 向角色添加以下新权限。
container.clusters.get container.clusters.list
-
单击 * 更新 * 以保存已编辑的角色。
查看网络连接要求
您需要在 Kubernetes 集群和 Connector 之间以及 Kubernetes 集群与为集群提供后端存储的 Cloud Volumes ONTAP 系统之间提供网络连接。
-
每个 Kubernetes 集群都必须与 Connector 建立入站连接
-
此连接器必须通过端口 443 与每个 Kubernetes 集群建立出站连接
提供此连接的最简单方法是,将连接器和 Cloud Volumes ONTAP 部署在与 Kubernetes 集群相同的 VPC 中。否则,您需要在不同的 VPC 之间设置对等连接。
以下示例显示了同一 VPC 中的每个组件。
设置 RBAC 授权
RBAC 验证仅在启用了 Active Directory ( AD )的 Kubernetes 集群上进行。不带 AD 的 Kubernetes 集群将自动通过验证。
您需要在每个 Kubernetes 集群上授权 Connector 角色,以便 Connector 可以发现和管理集群。
- 备份和还原
-
备份和还原只需要基本授权。
- 添加存储类
-
要使用BlueXP添加存储类并监控集群中的后端更改、需要扩展授权。
- 安装 Astra Trident
-
要安装Astra Trident、您需要为BlueXP提供完全授权。
安装Astra Trident时、BlueXP会安装Astra Trident后端和Kubernetes密钥、其中包含Astra Trident与存储集群通信所需的凭据。
以进行配置 subjects: name:
在YAML文件中、您需要知道BlueXP的唯一ID。
您可以通过以下两种方式之一找到唯一 ID :
-
使用命令:
gcloud iam service-accounts list gcloud iam service-accounts describe <service-account-email>
-
在上的服务帐户详细信息中 "云控制台"。
创建集群角色和角色绑定。
-
您可以根据需要自定义授权。
备份 / 还原添加基本授权,以便为 Kubernetes 集群启用备份和还原。
更换
subjects: kind:
变量、并输入您的用户名和subjects: name:
具有授权服务帐户的唯一ID。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: User name: apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cloudmanager-access-clusterrole apiGroup: rbac.authorization.k8s.io
存储类添加扩展授权以使用BlueXP添加存储类。
更换
subjects: kind:
变量、并输入您的用户名和subjects: user:
具有授权服务帐户的唯一ID。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: User name: apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cloudmanager-access-clusterrole apiGroup: rbac.authorization.k8s.io
安装{\f270通过}{\f151。}使用命令行提供完全授权并启用BlueXP以安装Astra Trident。
kubectl create clusterrolebinding test --clusterrole cluster-admin --user <Unique ID>
-
将配置应用于集群。
kubectl apply -f <file-name>