日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

Google Cloud の Kubernetes クラスタの要件

Cloud Manager を使用して、 Google で管理対象 Google Kubernetes Engine ( GKE )クラスタと自己管理型 Kubernetes クラスタを追加および管理できます。Cloud Manager にクラスタを追加する前に、次の要件を満たしていることを確認してください。

注記 このトピックでは、 _Kubernetes cluster_where 構成は、 GKE クラスタと自己管理型 Kubernetes クラスタで同じです。クラスタタイプは設定が異なる場所で指定します。

要件

Astra Trident

最新バージョンの 4 つの Astra Trident が必要です。Trident は Cloud Manager から直接インストールできます。お勧めします "前提条件を確認します" Astra Trident をインストールする前に

Astra Trident をアップグレードするには、 "オペレータにアップグレードしてください"

Cloud Volumes ONTAP

Cloud Volumes ONTAP は、 Kubernetes クラスタと同じテナンシーアカウント、ワークスペース、コネクタで Cloud Manager に配置する必要があります。 "設定手順については、 Astra Trident のドキュメントを参照してください"

Cloud Manager Connector の略

必要な権限を持つ Connector が Google で実行されている必要があります。 詳細は以下をご覧ください

ネットワーク接続

Kubernetes クラスタとコネクタの間、および Kubernetes クラスタと Cloud Volumes ONTAP の間にはネットワーク接続が必要です。 詳細は以下をご覧ください

RBAC 許可

Cloud Manager は、 Active Directory を使用するかどうかに関係なく、 RBAC 対応のクラスタをサポートします。Cloud Manager Connector ロールは、各 GKE クラスタで許可されている必要があります。 詳細は以下をご覧ください

コネクタを準備します

Kubernetes クラスタを検出および管理するには、 Google の Cloud Manager Connector が必要です。新しいコネクターを作成するか、必要な権限を持つ既存のコネクターを使用する必要があります。

新しいコネクターを作成します

次のリンクのいずれかの手順に従います。

既存のコネクタに必要な権限を追加する(管理対象の GKE クラスタを検出するため)

管理対象 GKE クラスタを検出する場合は、コネクタのカスタムロールを変更して権限を付与する必要があります。

手順
  1. インチ "Cloud Console の略"をクリックし、 * Roles * ページに移動します。

  2. ページ上部のドロップダウンリストを使用して、編集するロールを含むプロジェクトまたは組織を選択します。

  3. カスタムロールをクリックします。

  4. 役割の権限を更新するには、 * 役割の編集 * をクリックします。

  5. [ 権限の追加 *] をクリックして、次の新しい権限を役割に追加します。

    container.clusters.get
    container.clusters.list
  6. [ 更新( Update ) ] をクリックして、編集したロールを保存する。

ネットワーク要件を確認します

Kubernetes クラスタとコネクタの間、および Kubernetes クラスタとクラスタにバックエンドストレージを提供する Cloud Volumes ONTAP システムとの間にネットワーク接続を提供する必要があります。

  • 各 Kubernetes クラスタがコネクタからインバウンド接続を確立している必要があります

  • コネクタには、ポート 443 経由で各 Kubernetes クラスタへのアウトバウンド接続が必要です

この接続を確立する最も簡単な方法は、 Kubernetes クラスタと同じ VPC にコネクタと Cloud Volumes ONTAP を導入することです。それ以外の場合は、異なる VPC 間にピア接続を設定する必要があります。

以下は、同じ VPC 内の各コンポーネントの例です。

AKS の Kubernetes クラスタのアーキテクチャ図と、同じ VPC 内のコネクタと Cloud Volumes ONTAP への接続。

RBAC 許可をセットアップします

RBAC の検証は、 Active Directory ( AD )が有効になっている Kubernetes クラスタでのみ実行されます。AD を使用しない Kubernetes クラスタは、検証に自動的に合格します。

コネクタがクラスタを検出して管理できるように、各 Kubernetes クラスタで Connector ロールを承認する必要があります。

バックアップとリストア

バックアップとリストアに必要なのは、基本的な許可だけです。

ストレージクラスを追加する

Cloud Manager を使用してストレージクラスを追加するには、拡張された許可が必要です。

Astra Trident をインストールします

Cloud Manager が Astra Trident をインストールするための完全な権限を付与する必要があります。

注記 Astra Trident をインストールすると、 Cloud Manager は Astra Trident バックエンドと、 Astra Trident がストレージクラスタと通信するために必要なクレデンシャルを含む Kubernetes シークレットをインストールします。

YAML ファイルで「 Subjects:name:` 」を設定するには、 Cloud Manager の一意の ID を知っている必要があります。

一意の ID は、次の 2 つの方法のいずれかで確認できます。

  • コマンドを使用します。

    gcloud iam service-accounts list
    gcloud iam service-accounts describe <service-account-email>
  • のサービスアカウントの詳細で確認します "Cloud Console の略"

    Cloud Console のサービスアカウントの詳細のスクリーンショット。

クラスタロールとロールバインドを作成します。

  1. 許可要件に基づいて次のテキストを含む YAML ファイルを作成します。「 Subjects:kind 」変数をユーザ名に置き換え、「 Subjects:user:` 」を認証されたサービスアカウントの一意の ID に置き換えます。

    バックアップ / リストア

    Kubernetes クラスタのバックアップとリストアを有効にするための基本的な許可を追加する。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
        name: cloudmanager-access-clusterrole
    rules:
        - apiGroups:
              - ''
          resources:
              - namespaces
          verbs:
              - list
        - apiGroups:
              - ''
          resources:
              - persistentvolumes
          verbs:
              - list
        - apiGroups:
              - ''
          resources:
              - pods
              - pods/exec
          verbs:
              - get
              - list
        - apiGroups:
              - ''
          resources:
              - persistentvolumeclaims
          verbs:
              - list
              - create
        - apiGroups:
              - storage.k8s.io
          resources:
              - storageclasses
          verbs:
              - list
        - apiGroups:
              - trident.netapp.io
          resources:
              - tridentbackends
          verbs:
              - list
        - apiGroups:
              - trident.netapp.io
          resources:
              - tridentorchestrators
          verbs:
              - get
    ---
    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
              - create
              - delete
        - apiGroups:
              - storage.k8s.io
          resources:
              - storageclasses
          verbs:
              - get
              - create
              - list
              - delete
              - patch
        - apiGroups:
              - trident.netapp.io
          resources:
              - tridentbackends
              - tridentorchestrators
              - tridentbackendconfigs
          verbs:
              - get
              - list
              - create
              - delete
    ---
    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>
  2. クラスタに構成を適用します。

    kubectl apply -f <file-name>