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

Azure での Kubernetes クラスタの要件

共同作成者

Azureでは、BlueXPを使用して、マネージドAzure Kubernetesクラスタ(AKS)と自己管理Kubernetesクラスタを追加および管理できます。BlueXPにクラスタを追加する前に'次の要件が満たされていることを確認します

メモ このトピックでは、 _Kubernetes cluster_where configuration is the same for AKS and selfmanaged Kubernetes clusters を使用します。クラスタタイプは設定が異なる場所で指定します。

要件

Astra Trident

最新バージョンの 4 つの Astra Trident が必要です。Astra Tridentは、BlueXPから直接インストールまたはアップグレードできます。お勧めします "前提条件を確認します" Astra Trident をインストールする前に、

Cloud Volumes ONTAP

クラスタのバックエンドストレージとして Cloud Volumes ONTAP が設定されている必要があります。 "設定手順については、 Astra Trident のドキュメントを参照してください"

BlueXPコネクタ

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

ネットワーク接続

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

RBAC 許可

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

コネクタを準備します

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

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

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

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

管理対象の AKS クラスタを検出するには、コネクタのカスタムロールを変更して権限を提供しなければならない場合があります。

手順
  1. Connector 仮想マシンに割り当てられているロールを特定します。

    1. Azure ポータルで、仮想マシンサービスを開きます。

    2. Connector 仮想マシンを選択します。

    3. [ 設定 ] で、 [Identity] を選択します。

    4. Azure の役割の割り当て * をクリックします。

    5. Connector 仮想マシンに割り当てられているカスタムロールをメモしておきます。

  2. カスタムロールを更新します。

    1. Azure ポータルで、 Azure サブスクリプションを開きます。

    2. [* アクセス制御( IAM ) ]>[ 役割 * ] をクリックします。

    3. カスタムロールの省略記号 (…​) をクリックし、 * 編集 * をクリックします。

    4. JSON をクリックして、次の権限を追加します。

      "Microsoft.ContainerService/managedClusters/listClusterUserCredential/action"
      "Microsoft.ContainerService/managedClusters/read"
    5. [ * Review + update * ] をクリックし、 [ * Update * ] をクリックします。

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

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

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

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

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

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

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

別の VNet で実行される Kubernetes クラスタの例を次に示します。この例では、ピアリングによって Kubernetes クラスタの VNet とコネクタおよび Cloud Volumes ONTAP の VNet 間の接続が確立されます。

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

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

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

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

バックアップとリストア

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

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

BlueXPを使用してストレージクラスを追加し、バックエンドへの変更がないかクラスタを監視するには、拡張された許可が必要です。

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

BlueXPがAstra Tridentをインストールするためには、完全な権限を付与する必要があります。

メモ Astra Tridentをインストールすると、BlueXPはAstra Tridentバックエンドと、Astra Tridentのクレデンシャルを含むKubernetesシークレットをインストールして、ストレージクラスタと通信する必要があります。
作業を開始する前に

RBAC のサブジェクト名 : name:` の構成は、 Kubernetes クラスタのタイプによって若干異なります。

  • 管理対象 AKS クラスタ * を導入する場合、コネクターにシステムが割り当てた管理 ID のオブジェクト ID が必要です。この ID は Azure 管理ポータルで入手できます。

    Azure 管理ポータルのシステムによって割り当てられたオブジェクト ID ウィンドウのスクリーンショット。

  • 自己管理型の Kubernetes クラスタ * を導入する場合は、許可されたユーザのユーザ名が必要です。

手順

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

  1. 要件に基づいて承認をカスタマイズできます。

    バックアップ / リストア

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

    を交換します subjects: kind: 変数にユーザ名とを入力します subjects: name: システムが割り当てた管理IDのオブジェクト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のオブジェクト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
    Tridentのインストール

    コマンドラインを使用して完全な認証を行い、BlueXPでAstra Tridentをインストールできるようにします。

    eksctl create iamidentitymapping --cluster < > --region < > --arn < > --group "system:masters" --username system:node:{{EC2PrivateDNSName}}
  2. クラスタに構成を適用します。

    kubectl apply -f <file-name>