このトピックでは、Tanzu Kubernetes Grid を実行するために Microsoft Azure を準備する方法について説明します。
Azure VMware Solution (AVS) に Tanzu Kubernetes Grid をインストールする場合は、vSphere 環境にインストールします。環境の準備については、「VMware Cloud 環境への管理クラスタの展開の準備」にある「Microsoft Azure での Azure VMware Solution の準備」を参照してください。管理クラスタの展開については、「vSphere への管理クラスタの展開の準備」を参照してください。
このページの最後にある準備チェックリストを使用すると、Tanzu Kubernetes Grid 管理クラスタを Azure に展開する準備ができていることを確認できます。
重要Tanzu Kubernetes Grid v2.4.x は、Azure でのスタンドアローン TKG 管理クラスタの作成をサポートする TKG の最後のバージョンです。Azure でスタンドアローン TKG 管理クラスタを作成する機能は、Tanzu Kubernetes Grid v2.5 リリースで削除されます。
以降、VMware では、Azure で新しい TKG 管理クラスタを作成する代わりに、Tanzu Mission Control を使用してネイティブの Azure AKS クラスタを作成することをお勧めします。Tanzu Mission Control を使用してネイティブの Azure AKS クラスタを作成する方法については、Tanzu Mission Control ドキュメントの「Azure AKS クラスタのライフサイクルの管理」を参照してください。
詳細については、『VMware Tanzu Kubernetes Grid v2.4 Release Notes』の「AWS および Azure での TKG 管理クラスタとワークロード クラスタの廃止」を参照してください。
次を備えた Microsoft Azure アカウント:
Owner
ロールを割り当てるために必要な権限。 prod
または dev
プランのどちらを使用するかによって異なります。プランの詳細については、ワークロード クラスタのプランに関する説明を参照してください。dev
プラン:4 個の vCPU(メイン 1、ワーカー 1)prod
プラン:8 個の vCPU(メイン 3、ワーカー 1)dev
プラン:4 個の vCPU(メイン 1、ワーカー 1)prod
プラン:12 個の vCPU(メイン 3、ワーカー 3)たとえば、単一の管理クラスタがあり、すべてのクラスタが同じプランであるとします。
計画 | ワークロード クラスタ | ワークロード用の vCPU | 管理用の vCPU | 合計 vCPU |
---|---|---|---|---|
Dev | 1 | 4 | 4 | 8 |
5 | 20 | 24 | ||
Prod | 1 | 12 | 8 | 20 |
5 | 60 | 68 |
クラスタにとって十分なパブリック IP アドレスの割り当て(パブリック IP アドレス - 標準、パブリック IP アドレス - 基本、静的パブリック IP アドレスの割り当てを含む)。標準の Azure アカウントには、リージョンあたり 10 個のパブリック IP アドレスの割り当てがあります。すべての Tanzu Kubernetes Grid クラスタには、制御プレーン ノードとワーカー ノードの数に関係なく、2 つのパブリック IP アドレスが必要です。タイプが LoadBalancer
の Kubernetes サービス オブジェクトの場合は、それぞれにパブリック IP アドレスが 1 つ必要です。
~/.config/tanzu/tkg/bom/
にあり、その名前には Tanzu Kubernetes Grid バージョンが含まれています。たとえば、tkg-bom-v2.4.0+vmware.1 .yaml
などです。imageRepository
値に対して DNS ルックアップを実行して、CNAME を検索します。(オプション)次を備えた仮想ネットワーク (VNet):
CLUSTER_API_SERVER_PORT
変数を設定します。既存の VNet を使用しない場合は、インストール プロセスによって新しい VNet が作成されます。
ローカルにインストールされた Azure CLI。Microsoft Azure ドキュメントの「Azure CLI をインストールする方法」を参照してください。
LoadBalancer
タイプのサービスをクラスベースのワークロード クラスタに展開する場合は、「Azure 上のクラスベースのワークロード クラスタの LoadBalancer
サービスで、ゲートウェイまたはフロントエンドの手動構成が必要となる」で説明されているように、NAT ゲートウェイまたはその他のフロントエンドを構成します。
* または、外部ネットワーク アクセスなしでインストールする場合は、「インターネットが制限された環境の準備」を参照してください。
次の表は、Azure 上の管理クラスタのサイズ設定の例を示しています。このデータを指針として、管理クラスタの規模を、展開するワークロード クラスタ数を処理できるサイズに調整してください。「ワークロード クラスタ仮想マシン サイズ」列には、「管理可能な最大規模…」列の例で使用された仮想マシンのサイズが一覧表示されます。
管理クラスタのプラン | 管理クラスタ仮想マシン サイズ | 管理可能な最大規模… | ワークロード クラスタ仮想マシン サイズ |
---|---|---|---|
3 台の制御プレーン ノードと 3 台のワーカー ノード |
|
例:
|
|
3 台の制御プレーン ノードと 3 台のワーカー ノード |
|
例:1 台のワークロード クラスタ(3 台の制御プレーンと 250 台のワーカー ノードを展開) |
|
3 台の制御プレーン ノードと 3 台のワーカー ノード |
|
例:199 台のワークロード クラスタ(それぞれに 3 台の制御プレーンと 3 台のワーカー ノードを展開) |
|
Azure 上の Tanzu Kubernetes Grid 管理クラスタとワークロード クラスタでは、VNet とその VNet リソース グループに次の 2 つのネットワーク セキュリティ グループ (NSG) を定義する必要があります。
CLUSTER-NAME-controlplane-nsg
という名前の、クラスタの制御プレーン サブネットに関連付けられている NSGCLUSTER-NAME-node-nsg
という名前の、クラスタのワーカー ノード サブネットに関連付けられている NSG
ここで、CLUSTER-NAME
はクラスタの名前です。
注意上記の形式に従わない NSG 名を指定すると、展開が妨げられる可能性があります。
管理クラスタに既存の VNet を指定する場合は、上記の「一般的な要件」の説明に従ってこれらの NSG を作成する必要があります。管理クラスタの既存の VNet は、インストーラ インターフェイスの [既存の VNet を選択 (Select an existing VNet)] を使用するか、構成ファイルの AZURE_VNET_NAME
を使用して指定します。
クラスタに既存の VNet を指定しない場合、展開プロセスによって新しい VNet と必要な NSG が作成されます。
クラスタの VNet、リソース グループ、およびサブネットを構成する方法については、「構成ファイル変数リファレンス」の Microsoft Azure の表を参照してください。
Tanzu Kubernetes Grid は、Azure リソースを、サービス プリンシパルを介して Azure にアクセスする登録済みクライアント アプリケーションとして管理します。サービス プリンシパルを作成し、Azure リソースへのアクセスを構成するには、az ad sp create-for-rbac
コマンドを使用します。
az login
を実行して、Azure CLI にログインします。
サービス プリンシパルを作成し、Owner
ロールを割り当てます。
az ad sp create-for-rbac --role "Owner" --name "APP-NAME" --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP
az role assignment create --assignee APP-ID --role "Owner"
ここで、
APP-NAME
は、サービス プリンシパルを指定する任意の名前ですSUBSCRIPTION-ID
および RESOURCE-GROUP
は Azure サブスクリプション ID および VNet リソース グループですAPP-ID
は、az ad sp create-for-rbac
から返される appId
値ですたとえば、Owner
ロールを作成して tkg
という名前のサービス プリンシパルに割り当てる場合は、次のようになります。
$ az ad sp create-for-rbac --role "Owner" --name "tkg" --scopes /subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405/resourceGroups/myrg
Creating 'Owner' role assignment under scope '/subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405'
The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
'name' property in the output is deprecated and will be removed in the future. Use 'appId' instead.
{
"appId": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"displayName": "tkg",
"name": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"password": "R6yM_.aaaabbbbccccdddd111122223333",
"tenant": "9c117323-aaaa-bbbb-cccc-9ee430723ba3"
}
$ az role assignment create --assignee c407cfd4-aaaa-bbbb-cccc-80af703eb0ed --role "Owner"
出力を記録します。この情報は、次の「基本イメージ ライセンスの同意」の手順およびそれ以降に、管理クラスタを展開する際に使用します。az ad sp create-for-rbac
でサポートされているオプションの完全なリストについては、Azure ドキュメントの「az ad sp create-for-rbac」を参照してください。
Azure で管理クラスタ仮想マシンを実行するには、ベースとする Kubernetes バージョンとマシン OS のライセンスに同意します。
--plan
およびサブスクリプション ID を指定して、az vm image terms accept
コマンドを実行します。
Tanzu Kubernetes Grid v2.4.0 では、Kubernetes バージョン 1.27.5 およびマシン OS の Ubuntu 20.04 に基づいて、デフォルトのクラスタ イメージの --plan
の値は k8s-1dot27dot5-ubuntu-2004
になります。次のコマンドを実行します。
az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004 --subscription AZURE_SUBSCRIPTION_ID
ここで、AZURE_SUBSCRIPTION_ID
は Azure サブスクリプション ID です。
クラスタを展開するとき、および Tanzu Kubernetes Grid を新しいバージョンにアップグレードするたびに、使用するすべての Kubernetes バージョンまたは OS について、この手順を繰り返して基本イメージ ライセンスに同意する必要があります。
管理クラスタは、Tanzu CLI を使用して、「ブートストラップ マシン」と呼ばれるマシンから展開します。Azure に接続するには、ブートストラップ マシンから SSH キー ペアのパブリック キー部分を受け取る必要があります。ブートストラップ マシンに SSH キー ペアがない場合は、ssh-keygen
などのツールを使用して生成できます。
ブートストラップ マシンで、次の ssh-keygen
コマンドを実行します。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
「Enter file in which to save the key (/root/.ssh/id_rsa):
」というプロンプトで、Enter キーを押してデフォルト設定を受け入れます。
マシンで実行されている SSH エージェントにプライベート キーを追加し、前の手順で作成したパスワードを入力します。
ssh-add ~/.ssh/id_rsa
テキスト エディタでファイル .ssh/id_rsa.pub
を開き、管理クラスタの展開時に簡単にコピー アンド ペーストできるようにします。
次のチェックリストを使用して、Tanzu Kubernetes Grid 管理クラスタを Azure に展開する準備ができていることを確認します。
Tanzu CLI がインストールされている
tanzu version
を実行します。Tanzu Kubernetes Grid v2.4 と互換性のある CLI バージョンのリストについては、「 製品の相互運用性マトリックス」を参照してください。Azure アカウント
https://portal.azure.com
) にログインします。Azure CLI がインストールされている
az version
を実行します。出力には、Microsoft Azure のドキュメントの「Azure CLI をインストールする方法」に記載されている Azure CLI の現在のバージョンがリストされているはずです。tkg
アプリケーションが登録されている
tkg
アプリケーションが、上記の「Azure クライアント アプリケーションとしての Tanzu Kubernetes Grid の登録」にあるように、最新のシークレットとともに構成済みとしてリストされていることを確認します。az ad sp show --id.
を実行します。ベース仮想マシン イメージのライセンスに同意している
az vm image terms show --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004
を実行します。出力には、"accepted": true
が含まれているはずです。本番環境では、クラスタの ID 管理を有効にすることを強くお勧めします。* 管理クラスタを展開する前に実行する準備手順の詳細については、「ID 管理の構成」の「ID プロバイダの詳細の取得」を参照してください。* Tanzu Kubernetes Grid での ID 管理とアクセス制御の概念については、「ID とアクセス管理について」を参照してください。
外部インターネット接続のある環境で Tanzu Kubernetes Grid を使用している場合は、ID 管理を設定した時点で、管理クラスタを Azure に展開する準備が整います。