Google Cloud 中的 Kubernetes 集群的要求
提供者
您可以使用 Cloud Manager 在 Google 中添加和管理受管 Google Kubernetes Engine ( GKEE )集群和自管 Kubernetes 集群。在将集群添加到 Cloud Manager 之前,请确保满足以下要求。
|
本主题使用 Kubernetes cluster ,其中 GKE- 和自管理 Kubernetes 集群的配置相同。在配置不同的位置指定集群类型。 |
要求
- Astra Trident
-
需要使用四个最新版本的 Astra Trident 之一。您可以直接从 Cloud Manager 安装 Astra Trident 。您应该 "查看前提条件" 安装 Astra Trident 之前
要升级 Astra Trident , "使用操作员升级"。
- Cloud Volumes ONTAP
-
Cloud Volumes ONTAP 必须与 Kubernetes 集群位于同一租户帐户,工作空间和连接器下的 Cloud Manager 中。 "有关配置步骤,请转至 Astra Trident 文档"。
- Cloud Manager Connector
-
必须使用所需权限在 Google 中运行 Connector 。 在下方了解更多信息。
- 网络连接
-
Kubernetes 集群和 Connector 之间以及 Kubernetes 集群和 Cloud Volumes ONTAP 之间需要网络连接。 在下方了解更多信息。
- RBAC 授权
-
Cloud Manager 支持使用和不使用 Active Directory 的已启用 RBAC 的集群。必须在每个 GKE 集群上授权 Cloud Manager Connector 角色。 在下方了解更多信息。
准备连接器
要发现和管理 Kubernetes 集群,需要使用 Google 中的 Cloud Manager 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 可以发现和管理集群。
- 备份和还原
-
备份和还原只需要基本授权。
- 添加存储类
-
要使用Cloud Manager添加存储类并监控集群中的后端更改、需要扩展授权。
- 安装 Astra Trident
-
要安装 Astra Trident ,您需要为 Cloud Manager 提供完全授权。
安装 Astra Trident 时, Cloud Manager 会安装 Astra Trident 后端和 Kubernetes 密钥,其中包含 Astra Trident 与存储集群通信所需的凭据。
要在 YAML 文件中配置 s子对象: name :
,您需要知道 Cloud Manager 的唯一 ID 。
您可以通过以下两种方式之一找到唯一 ID :
-
使用命令:
gcloud iam service-accounts list gcloud iam service-accounts describe <service-account-email>
-
在上的服务帐户详细信息中 "云控制台"。
创建集群角色和角色绑定。
-
根据您的授权要求创建包含以下文本的 YAML 文件。将
ssubforjects : kind :
变量替换为您的用户名,将ssubforjects : user :
替换为授权服务帐户的唯一 ID 。备份 / 还原添加基本授权,以便为 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: User name: apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cloudmanager-access-clusterrole apiGroup: rbac.authorization.k8s.io
存储类添加扩展授权以使用 Cloud Manager 添加存储类。
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
安装 Trident使用命令行提供完全授权并启用 Cloud Manager 以安装 Astra Trident 。
kubectl create clusterrolebinding test --clusterrole cluster-admin --user <Unique ID>
-
将配置应用于集群。
kubectl apply -f <file-name>