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

Azure で管理されているディスクを使用して Microsoft Azure をセットアップする

Microsoft Azure サブスクリプションを準備してから、 Astra Control Service で Azure Kubernetes Service クラスタを管理するには、いくつかの手順を実行する必要があります。Azure で管理されているディスクをストレージバックエンドとして使用する場合は、次の手順に従います。

Azure のセットアップのクイックスタート

これらの手順を実行してすぐに作業を開始するか、残りのセクションまでスクロールして詳細を確認してください。

Azure Kubernetes Service の Astra Control Service の要件を確認

クラスタが正常に機能しており、 Kubernetes バージョン 1.211.x ~ 1.23 が実行されていること、ノードプールがオンラインであり * Linux * が実行されていることなどを確認してください。 このステップの詳細をご覧ください

Microsoft Azure に登録

Microsoft Azure アカウントを作成します。 このステップの詳細をご覧ください

Azure サービスプリンシパルを作成します

Contributor ロールを持つ Azure サービスプリンシパルを作成します。 このステップの詳細をご覧ください

CSI ドライバの詳細を設定します

CSI ドライバと連携するように Azure サブスクリプションとクラスタを設定する必要があります。 このステップの詳細をご覧ください

Azure Kubernetes Service クラスタの要件

Kubernetes クラスタを Astra Control Service から検出して管理できるようにするには、 Kubernetes クラスタが次の要件を満たしている必要があります。

Kubernetes のバージョン

クラスタで Kubernetes バージョン 1.211.x ~ 1.23 が実行されている必要があります。

イメージタイプ

すべてのノードプールのイメージタイプは Linux である必要があります。

クラスタの状態

クラスタが正常な状態で稼働し、少なくとも 1 つのオンラインワーカーノードがあり、ワーカーノードが障害状態でない必要があります。

Azure リージョン

ベストプラクティスとして、 Azure NetApp Files をストレージバックエンドとして使用しない場合でも、そのリージョンを選択することを推奨します。これにより、パフォーマンス要件が変わった場合でも、 Azure NetApp Files をストレージバックエンドとして簡単に使用できるようになります。 "Azure 製品を地域別に表示します"

外部のボリューム Snapshot コントローラ

クラスタに CSI ボリュームスナップショットコントローラがインストールされている必要があります。このコントローラは、 K8s バージョン 1.21 以降ではデフォルトでインストールされますが、バージョン 1.19 および 1.20 を実行しているクラスタでチェックする必要があります。 "オンデマンドボリューム Snapshot 用の外部 Snapshot コントローラの詳細については、こちらをご覧ください"

CSI ドライバ

クラスタには適切な CSI ドライバがインストールされている必要があります。

Microsoft Azure に登録

Microsoft Azure アカウントをお持ちでない場合は、まず Microsoft Azure にサインアップします。

手順
  1. にアクセスします "Azure サブスクリプションページ" をクリックして Azure サービスに登録してください。

  2. プランを選択し、指示に従ってサブスクリプションを完了します。

Azure サービスプリンシパルを作成します

Astra Control Service には、 Contributor ロールを割り当てられた Azure サービスプリンシパルが必要です。Astra Control Service では、このサービスプリンシパルを使用して、 Kubernetes アプリケーションデータの管理をお客様に代わって容易にします。

サービスプリンシパルは、アプリケーション、サービス、およびツールで使用するために特別に作成される ID です。サービスプリンシパルにロールを割り当てると、 Azure の特定のリソースへのアクセスが制限されます。

Azure CLI を使用してサービスプリンシパルを作成するには、次の手順に従います。出力は JSON ファイルに保存し、後で Astra Control Service に提供する必要があります。 "CLI の使用の詳細については、 Azure のドキュメントを参照してください"

次の手順では、サービスプリンシパルを作成する権限があり、 Microsoft Azure SDK ( AZ コマンド)がマシンにインストールされていることを前提としています。

要件
  • サービスプリンシパルは、通常の認証を使用する必要があります。証明書はサポートされていません。

  • サービスプリンシパルに、 Azure サブスクリプションへの寄稿者または所有者のアクセス権が付与されている必要があります。

  • スコープ用に選択するサブスクリプションまたはリソースグループには、 AKS クラスタと Azure NetApp Files アカウントが含まれている必要があります。

手順
  1. AKS クラスタが存在するサブスクリプションとテナント ID を特定します(これは Astra Control Service で管理するクラスタです)。

    az configure --list-defaults
    az account list --output table
  2. サブスクリプション全体を使用するかリソースグループを使用するかに応じて、次のいずれかの操作を行います。

    • サービスプリンシパルを作成し、 Contributor ロールを割り当て、クラスタが存在するサブスクリプション全体にスコープを指定します。

      az ad sp create-for-rbac --name service-principal-name --role contributor --scopes /subscriptions/SUBSCRIPTION-ID
    • サービスプリンシパルを作成し、 Contributor ロールを割り当て、クラスタが存在するリソースグループを指定します。

      az ad sp create-for-rbac --name service-principal-name --role contributor --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-ID
  3. 作成された Azure CLI 出力は JSON ファイルとして保存します。

    Astra Control Service が AKS クラスタを検出し、 Kubernetes のデータ管理処理を管理できるように、このファイルを指定する必要があります。 "Astra Control Service での資格情報の管理について説明します"

  4. オプション: JSON ファイルにサブスクリプション ID を追加し、ファイルを選択すると Astra Control Service によって自動的に ID が入力されるようにします。

    それ以外の場合は、表示されたときに Astra Control Service でサブスクリプション ID を入力する必要があります。

    • 例 *

    {
      "appId": "0db3929a-bfb0-4c93-baee-aaf8",
      "displayName": "sp-example-dev-sandbox",
      "name": "http://sp-example-dev-sandbox",
      "password": "mypassword",
      "tenant": "011cdf6c-7512-4805-aaf8-7721afd8ca37",
      "subscriptionId": "99ce999a-8c99-99d9-a9d9-99cce99f99ad"
    }
  5. オプション:サービスプリンシパルをテストします。サービスプリンシパルで使用するスコープに応じて、次のコマンド例を選択します。

    サブスクリプションの範囲
    az login --service-principal --username APP-ID-SERVICEPRINCIPAL --password PASSWORD --tenant TENANT-ID
    az group list --subscription SUBSCRIPTION-ID
    az aks list --subscription SUBSCRIPTION-ID
    az storage container list --subscription SUBSCRIPTION-ID
    リソースグループのスコープ
    az login --service-principal --username APP-ID-SERVICEPRINCIPAL --password PASSWORD --tenant TENANT-ID
    az aks list --subscription SUBSCRIPTION-ID --resource-group RESOURCE-GROUP-ID

CSI ドライバの詳細を設定します

Azure で管理されているディスクを Astra Control Service とともに使用するには、まず最初に、 1.21 より前の Kubernetes バージョンの CSI ボリュームスナップショット機能を設定し、必要な CSI ドライバをインストールする必要があります。

Kubernetes 1.19 の CSI ボリュームスナップショットコントローラをインストールします

Kubernetes バージョン 1.19 を使用している場合は、次の手順に従ってボリューム Snapshot コントローラをインストールします。

手順
  1. ボリュームスナップショット SSD をインストールする。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
  2. スナップショットコントローラを作成します。

    特定のネームスペースに Snapshot コントローラを配置する場合は、以下のファイルをダウンロードして編集してから適用します。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml

Kubernetes 1.20 の CSI ボリュームスナップショットコントローラをインストールします

Kubernetes バージョン 1.20 を使用している場合は、次の手順に従ってボリューム Snapshot コントローラをインストールします。

手順
  1. ボリュームスナップショット SSD をインストールする。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
  2. スナップショットコントローラを作成します。

    特定のネームスペースに Snapshot コントローラを配置する場合は、以下のファイルをダウンロードして編集してから適用します。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml

Azure サブスクリプションで CSI ドライバ機能を有効にします

CSI ドライバをインストールする前に、 Azure サブスクリプションで CSI ドライバ機能を有効にする必要があります。

手順
  1. Azure コマンドラインインターフェイスを開きます。

  2. 次のコマンドを実行してドライバを登録します。

    az feature register --namespace "Microsoft.ContainerService" --name "EnableAzureDiskFileCSIDriver"
  3. 次のコマンドを実行して、変更がプロゲートされていることを確認します。

    'az provider register -n Microsoft.ContainerService

    次のような出力が表示されます。

{
"id": "/subscriptions/b200155f-001a-43be-87be-3edde83acef4/providers/Microsoft.Features/providers/Microsoft.ContainerService/features/EnableAzureDiskFileCSIDriver",
"name": "Microsoft.ContainerService/EnableAzureDiskFileCSIDriver",
"properties": {
   "state": "Registering"
},
"type": "Microsoft.Features/providers/features"
}

Azure 管理ディスク CSI ドライバを Azure Kubernetes Service クラスタにインストールします

Azure CSI ドライバをインストールして準備を完了できます。

ステップ
  1. に進みます "Microsoft CSI ドライバのマニュアル"

  2. 指示に従って、必要な CSI ドライバをインストールします。