AKS のフレックス ノードを計画する (プレビュー)

Important

AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。 詳細については、次のサポート記事を参照してください。

Flex ノードは、Azure Kubernetes Service (AKS) クラスターを、クラスターの Azure マネージド ノード プールの外部で管理する Linux マシンに拡張します。 フレックス ノードを追加する前に、ホストがAzureに対して認証する方法、Kubernetes API サーバーに到達する方法、AKS と Flex ノード環境の間のネットワーク トラフィックの移動方法を選択します。

この記事では、これらの決定を行い、重複しないアドレス範囲を計画し、残りのデプロイ記事の共有環境ファイルを作成するのに役立ちます。

始める前の準備

  • AKS の概要については、Flex ノードを確認してください。
  • Flex ノードの ID とアクセスの概念を確認します。
  • Flex ノードのネットワークの概念を確認します。
  • 必要なツールとネットワーク アクセスを備える Linux 互換の Bash 環境を使用します。 このデプロイ シリーズでは、その環境を Bash 環境 と呼びます。 クラスターに参加する別個のマシンは 、フレックス ノード ホストです。
  • Azure CLI をインストールします。 インストールされているバージョンを確認するには、az --version を実行します。 インストールまたはアップグレードするには、Azure CLI のインストールを参照してください。
  • ターゲット サブスクリプションと仮想ネットワーク構成を読み取ることができるアカウントでAzureにサインインします。
  • Azureマネージド AKS ノード用の既存のAzure仮想ネットワークとサブネットを準備します。 仮想ネットワークは、AKS クラスターとは異なるリソース グループ内に存在できます。 その場合は、AKS クラスター ID にサブネットに必要なアクセス許可があることを確認します。

デプロイの決定を行う

リソースを作成または構成する前に、次の決定事項を計画します。

意思決定 オプション 意思決定が制御するもの
ホスト ID マネージド ID、Azure Arc マネージド ID、またはサービス プリンシパル flex ノード エージェントがAzureに対して認証する方法
AKS API アクセス パブリックまたはプライベートの AKS クラスター Bash 環境と Flex ノード ホストが Kubernetes API サーバーを解決して到達する方法
Flex ノード接続 レイヤー 3 接続または Unbounded-Net WireGuard ゲートウェイ AKS で管理されるノード、フレックス ノード、ポッド、および Kubernetes サービスの通信方法

これらの決定は、デプロイのさまざまな部分に対処します。 たとえば、パブリック AKS API エンドポイントを選択しても、AKS マネージド ノードとフレックス ノード ホスト間のネットワーク接続は作成されません。

ホスト ID を選択する

flex ノードの ID とアクセスの概念の決定テーブルを使用して、フレックス ノード エージェントが使用するAzure ID を選択します。

ホスト ID は、Azure操作を承認します。 ホストがクラスターに参加する必要があるネットワーク接続または Kubernetes ブートストラップ構成は置き換わりません。 共有環境ファイルに資格情報を格納しないでください。

パブリックまたはプライベートの AKS API アクセスを選択する

Kubernetes API サーバーは、クラスターの管理エンドポイントです。 Bash 環境と各 Flex ノード ホストは、このエンドポイントを解決して接続できる必要があります。

  • パブリック AKS API アクセス では、セキュリティで保護されたパブリック エンドポイントが使用されます。 Kubernetes の認証と承認によって、クラスターへのアクセスが引き続き制御されます。 パブリック API エンドポイントでは、クラスターで実行されているアプリケーションは公開されません。
  • プライベート AKS API アクセス では、AKS 仮想ネットワーク内のプライベート エンドポイントが使用されます。 Bash 環境でAzure CLI、kubectl、クラスターのセットアップ コマンドを実行します。このコマンドは、そのプライベート ネットワークに接続されているコンピューターで実行する必要があります。 Flex ノード ネットワークは、クラスターのプライベート DNS 名を解決し、トラフィックをプライベート エンドポイントにルーティングできる必要もあります。

Flex ノードデプロイでは、API サーバーへのパブリック アクセスとプライベート アクセスの両方がサポートされます。 プライベート パスには、追加の DNS、ルーティング、およびコマンド実行構成が必要です。この構成は、適用される場所で呼び出されます。 一般的な AKS ガイダンスについては、AKS のコントロール プレーン ネットワークの計画、プライベート AKS クラスターの作成、プライベート AKS クラスターへの接続に関するページを参照してください。

フレックス ノード接続を選択する

このデプロイ シリーズでは、組み込みのネットワーク プラグインを使用せずに AKS クラスターを作成し、AKS マネージド ノードと flex ノードの両方に Unbounded-Net をインストールします。 Unbounded-Net は、ポッドのアドレス範囲を割り当て、AKS と flex ノード環境の間のルーティングを構成します。 この記事では、そのワークフローについて説明します。 その他の CNI またはネットワーク構成では、異なるルーティング、ファイアウォール、DNS、ゲートウェイ、セキュリティ、ライフサイクルの構成が必要になる場合があります。 パブリック プレビュー ネットワーク モデルの説明については、 Flex ノードのネットワークの概念を参照してください。

AKS と Flex ノード環境の間に基になるネットワーク接続を提供します。 レイヤー 3 接続とは、両方のノード ネットワークが、互いのノード アドレスに双方向で IP パケットを既にルーティングできることを意味します。 既存のネットワークに合った方法を選択します。

接続方法 いつ使用するか
仮想ネットワーク ピアリング AKS クラスターと flex ノード ホストは、異なるリージョンの仮想ネットワークを含む、Azure仮想ネットワーク内にあります。
VPN ゲートウェイ Flex ノード ホストは、オンプレミス環境か、暗号化されたサイト間 VPN を介してAzureに接続する別のネットワーク内にあります。
ExpressRoute 組織は、そのネットワークとAzureの間の専用プライベート接続を使用します。
Unbounded-Net WireGuard ゲートウェイ AKS および Flex ノード ネットワークには、プライベート ルーティング接続がありません。 AKS ゲートウェイ ノード プールで WireGuard トンネルを構成して操作します。これらのゲートウェイ ノードにはパブリックにアクセスできる必要があります。 環境間の Pod トラフィックはこのプールに依存しているため、ゲートウェイの容量と可用性を考慮して計画してください。 Unbounded-Net WireGuard ラボを備えたパブリック AKS クラスターをご覧ください。

Microsoft Learn チュートリアルでは、Unbounded-Net とのレイヤー 3 接続を使用します。

AKS API Flex ノード接続 Guidance
Public レイヤー 3 接続 推奨される構成
Private レイヤー 3 接続 追加の DNS、ルーティング、およびコマンド実行の構成が必要です
Public パブリック WireGuard ゲートウェイ 代替トポロジ。AKSFlexNode ラボを参照してください
Private パブリック WireGuard ゲートウェイ このドキュメントの対象ではありません

Note

その他のトポロジの例については、 AKSFlexNode ラボを参照してください。これには、WireGuard ゲートウェイでパブリック AKS API サーバーを使用する例や、カスタマー マネージド ネットワークを使用したプライベート AKS API サーバーを使用する例が含まれます。 これらのラボは、この記事に記載されている構成を補足します。 これらのラボでは、異なるネットワーク コンポーネントを使用し、運用上またはサポート上の責任が異なる場合があります。 ラボを使用する前に、その前提条件、制限事項、適用可能なコンポーネントバージョン、および顧客の責任を確認してください。 GitHub ラボでは、Microsoft Learn に記載されているサポート スコープは拡張されません。

表されていないトポロジに関するフィードバックを提供するには、 AKSFlexNode リポジトリで問題を開きます。 Flex ノード ホストの場所、AKS API アクセス モデル、提案された接続方法、提案された CNI、シナリオで必要なネットワーク パスを含めます。

必要なネットワーク接続を計画する

ネットワーク管理者と協力して、ネットワーク設計で次の接続が提供されていることを確認します。

要件 必要な理由
Bash 環境は、AKS API サーバーを解決して到達できます。 クラスターを構成および管理するには、この接続が必要です。
各フレックス ノードホストは、AKS API サーバーを解決し、そこにアクセスできます。 Flex ノード エージェントと kubelet は、この接続を使用してクラスターに参加し、Kubernetes コントロール プレーンと通信します。
AKS で管理されるノードとフレックス ノード ホストは、互いのプライベート IP アドレスに到達できます。 ほとんどの接続方法では、Unbounded-Net は、2 つの環境間の基になるパスとしてノード ネットワークを使用します。
ポッドと Kubernetes サービスのトラフィックは、AKS で管理されるノードとフレックス ノードの間をルーティングできます。 ワークロードには、クロスノード通信、クラスター DNS、Kubernetes サービスへのアクセスが必要です。
AKS コントロール プレーンは、フレックス ノード上の kubelet に接続できます。 AKS は、 kubectl logs、 kubectl exec、 kubectl port-forwardなどの kubelet 操作にこのパスを使用します。

ルーティング、仮想ネットワーク ピアリング、VPN または ExpressRoute 接続、ファイアウォールとネットワーク セキュリティ グループの規則、DNS、プロキシ設定、およびこのシリーズに記載されている Unbounded-Net 構成など、外部ホスト ネットワークを構成して操作します。 完全責任モデルについては、 フレックス ノードのサポート ポリシーを参照してください。

承認されたソース アドレスへのホスト管理アクセスを制限します。 Azure VM の場合は、ネットワーク セキュリティ グループをホスト サブネットまたはネットワーク インターフェイスに関連付けます。 Azure外のホストの場合は、同等のファイアウォール制御を適用します。 az vm createを使用してフレックス ノード ホストを作成する場合は、コマンドによって作成されるパブリック IP アドレスとネットワーク セキュリティ グループ規則を確認します。 SSH 規則を制限しない限り、任意のパブリック ソースから TCP ポート 22 への接続を許可できます。

デプロイの値を収集する

残りの記事では、次の値を再利用します。

一般的なAzure リソース値

Variable Description 使用される場合
SUBSCRIPTION_ID AKS クラスターと関連するAzure リソースを含むサブスクリプション。 デプロイのたびに失敗する
RESOURCE_GROUP AKS クラスターを含むリソース グループ。 デプロイのたびに失敗する
CLUSTER_NAME AKS クラスターの名前。 デプロイのたびに失敗する
FLEX_POOL_NAME フレックス ノード プールの名前。 文字と数字のみを使用します。 デプロイのたびに失敗する
AKS_API_ACCESS AKS クラスターの API アクセス モデル。 値を public または private に設定します。 クラスターの準備と API 接続の検証
AKS_RESOURCE_ID AKS クラスターの Azure リソース ID。 Azureは、クラスターが存在した後にこの値を提供します。 後の記事

AKS クラスターと仮想ネットワークの値

Variable Description 使用される場合
LOCATION AKS クラスターの Azure リージョン。 このリージョンが リージョンの可用性 要件を満たしていることを確認します。 AKS クラスターの作成
AKS_VNET_NAME AKS サブネットを含む仮想ネットワークの名前。 AKS サブネットの検索と検証
AKS_VNET_RESOURCE_GROUP AKS 仮想ネットワークを含むリソース グループ。 RESOURCE_GROUPとは異なる場合があります。 AKS サブネットの検索と検証
AKS_SUBNET_NAME Azureマネージド AKS ノードによって使用されるサブネットの名前。 AKS サブネットの検索と検証
AKS_SUBNET_ID AKS サブネットの Azure リソース ID AKS クラスターの作成
AKS_NODE_VM_SIZE Azure 管理の AKS システム ノード プールの VM サイズ この値は、フレックス ノード ホストのサイズを設定しません。 AKS クラスターの作成
SERVICE_CIDR Kubernetes サービスのアドレス範囲。 AKS クラスター ネットワーク プロファイルの構成
DNS_SERVICE_IP Kubernetes DNS サービスの IP アドレス。 AKS クラスター ネットワーク プロファイルの構成

環境ファイルを作成する前に、AKS サブネット リソース ID とアドレス範囲を取得します。

az network vnet subnet show \
    --resource-group '<virtual-network-resource-group>' \
    --vnet-name '<virtual-network-name>' \
    --name '<aks-subnet-name>' \
    --query "{ResourceId:id,AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes}" \
    --output json

AKS と Unbounded-Net アドレス値

SERVICE_CIDRとDNS_SERVICE_IPを使用して、AKS クラスター ネットワーク プロファイルを構成します。 このチュートリアルで使用する Unbounded-Net サイトを設定するようにノードとポッドのCIDR を構成します。

AKS ノード、AKS ポッド、フレックス ノード、フレックス ポッド、および Kubernetes サービス範囲は、選択したネットワーク設計に従う必要があり、仮想ネットワーク ピアリング、VPN、または ExpressRoute を介して到達可能な相互またはネットワークを重複させてはなりません。 最終的な値をネットワーク管理者と調整します。

別のデプロイからサンプル CIDR をコピーしないでください。 CIDR はルーティング可能なアドレス空間を識別するため、Azureまたは接続されたネットワークと重複する例を再利用すると、トラフィックがあいまいになり、ノードとポッドが相互に到達できなくなる可能性があります。

Variable Description 使用者
AKS_SUBNET_CIDR Azureマネージド AKS ノードのサブネットに割り当てられたアドレス範囲。 Azure 仮想ネットワークと AKS サブネットの検証
AKS_NODE_CIDR AKS ノード サブネットを含む Unbounded-Net Site のノード範囲。 プライマリ クラスター サイト Unbounded-Net
AKS_POD_CIDR Azure 管理 AKS ノード上のポッド用アドレス プール。 プライマリ クラスター サイト Unbounded-Net
FLEX_HOST_SUBNET_CIDR フレックス ノード ホストを含むアドレス範囲。 Flex ノードのホストネットワーク検証
FLEX_NODE_CIDR Unbounded-Net のフレックス ノード ホスト サブネットを含むサイト ノード範囲。 フレックス ノードの Unbounded-Net サイト
FLEX_POD_CIDR Flex ノード上のポッド用アドレスプール。 フレックス ノードの Unbounded-Net サイト
SERVICE_CIDR Kubernetes サービスのアドレス範囲。 AKS クラスター ネットワーク プロファイル
DNS_SERVICE_IP Kubernetes DNS サービスの IP アドレス。 AKS クラスター ネットワーク プロファイル

住所計画に次の規則を適用します。

  • AKS_SUBNET_CIDR は、 AKS_NODE_CIDR内に含まれている必要があります。
  • FLEX_HOST_SUBNET_CIDR は、 FLEX_NODE_CIDR内に含まれている必要があります。
  • DNS_SERVICE_IP は、 SERVICE_CIDR内にある必要があります。

これら 8 つの値は、8 つの個別の範囲ではありません。 5 つは重複してはならない独立した範囲であり、2 つは対応するサイト ノードの範囲内に含まれるサブネット範囲であり、1 つはサービス範囲内の単一の IP アドレスです。

次の値は、このセクションのすべてのルールを満たす値です。 それらをデフォルトとしてではなく、関係性を示す図として扱ってください。 使用する前に、Azureと接続されているネットワーク アドレス空間に対して独自の値を確認します。

Variable Example Relationship
AKS_NODE_CIDR 10.10.0.0/16 独立範囲
AKS_SUBNET_CIDR 10.10.1.0/24 AKS_NODE_CIDR 内に含まれる
AKS_POD_CIDR 10.244.0.0/16 独立範囲
FLEX_NODE_CIDR 10.20.0.0/16 独立範囲
FLEX_HOST_SUBNET_CIDR 10.20.1.0/24 FLEX_NODE_CIDR 内に含まれる
FLEX_POD_CIDR 10.245.0.0/16 独立範囲
SERVICE_CIDR 10.96.0.0/16 独立範囲
DNS_SERVICE_IP 10.96.0.10 中に SERVICE_CIDR

現在のAzure仮想ネットワーク アドレス空間を確認します。

az network vnet list \
    --query "[].{ResourceGroup:resourceGroup,Name:name,AddressPrefixes:addressSpace.addressPrefixes}" \
    --output table

Azureは、管理するリソース内の競合を識別できますが、接続されているすべてのオンプレミスまたは外部ネットワークのアドレス範囲を検証することはできません。

コンポーネントのバージョン値

Flex ノードには、互換性のあるバージョンの AKS、Azure CLI拡張機能、Unbounded-Net、および flex ノード エージェントが必要です。 この記事に記載されているバージョンを使用し、これらのコンポーネントを個別に選択またはアップグレードしないでください。

Variable Description
AKS_VERSION AKS クラスターでサポートされている Kubernetes バージョン。
AKS_PREVIEW_VERSION aks-previewAzure CLI拡張機能のバージョン22.0.0b8以降。
UNBOUNDED_VERSION サポートされている Unbounded-Net バージョン。
AKS_FLEX_NODE_VERSION サポートされている Flex ノード エージェントのバージョン。

地域ごとの提供状況

Flex ノードでは、クラスターをホストするリージョンで AKS リリース v20260904 以降が必要です。 AKS は、これらの日付ベースのリリースを自動的に適用し、 AKS_VERSIONで設定した Kubernetes バージョンとは別のバージョンです。

クラスターを作成または選択する前に、AKS リリース トラッカーの [AKS リリース] タブを開き、リージョンを見つけて、[現在の操作中] でバージョンを確認します。 AKS リリース バージョンでは、 vYYYYMMDD 形式が使用されます。 リージョンに以前のバージョンが表示されている場合は、リリースがリージョンに到達するまで待つか、デプロイ要件で許可されている場合は、必要なリリースが利用可能なリージョンを選択します。

ローカル ワークスペースの値

Variable Description
WORK_DIR 残りの記事がダウンロード、生成されたファイル、およびクラスター kubeconfig ファイルを格納する Bash 環境のディレクトリ。 既定値は ~/.local/share/aksflexnode/<deployment-name> です。 デプロイ後に削除する一時ディレクトリなど、これらのファイルを別の場所に保持するには、環境ファイルの WORK_DIR 値を変更します。

共有環境ファイルを作成する

デプロイごとに 1 つの環境ファイルを作成します。 このファイルは、残りのアーティクルとターミナル セッション間で非セキュリティ値の一貫性を維持します。

このファイルには、アクセス トークン、ブートストラップ データ、kubeconfig コンテンツ、サービス プリンシパルの資格情報、証明書、証明書の秘密キー、または SSH 秘密キーを格納しないでください。

  1. 短いデプロイ ラベルを選択し、環境ファイルの保護されたディレクトリを作成します。

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_DIR="${HOME}/.config/aks-flexnode"
    export FLEXNODE_ENV_FILE="${FLEXNODE_ENV_DIR}/${FLEXNODE_DEPLOYMENT}.env"
    
    install -d -m 0700 "${FLEXNODE_ENV_DIR}"
    
  2. 環境ファイルを作成します。

    if [[ -e "${FLEXNODE_ENV_FILE}" ]]; then
        printf 'Environment file already exists: %s\n' "${FLEXNODE_ENV_FILE}" >&2
        false
    else
        install -m 0600 /dev/null "${FLEXNODE_ENV_FILE}"
    
        cat > "${FLEXNODE_ENV_FILE}" <<'EOF'
    set_flexnode_env() {
        if [[ "$#" -ne 2 || ! "$1" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
            printf 'Usage: set_flexnode_env NAME VALUE\n' >&2
            return 2
        fi
    
        local name="$1"
        local value="$2"
        local temporary_file
    
        temporary_file="$(mktemp "$(dirname "${FLEXNODE_ENV_FILE}")/flexnode.env.XXXXXX")" || return 1
        awk -v prefix="export ${name}=" 'index($0, prefix) != 1 { print }' \
            "${FLEXNODE_ENV_FILE}" > "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        printf 'export %s=%q\n' "${name}" "${value}" >> "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        install -m 0600 "${temporary_file}" "${FLEXNODE_ENV_FILE}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        rm -f "${temporary_file}"
        export "${name}=${value}"
    }
    
    # Customer inputs
    export SUBSCRIPTION_ID='<subscription-id>'
    export LOCATION='<supported-aks-region>'
    export RESOURCE_GROUP='<aks-resource-group>'
    export CLUSTER_NAME='<aks-cluster-name>'
    export FLEX_POOL_NAME='<flex-node-pool-name>'
    export AKS_API_ACCESS='<public-or-private>'
    
    # AKS virtual network
    export AKS_VNET_NAME='<virtual-network-name>'
    export AKS_VNET_RESOURCE_GROUP='<virtual-network-resource-group>'
    export AKS_SUBNET_NAME='<aks-subnet-name>'
    export AKS_SUBNET_ID='<aks-subnet-resource-id>'
    
    # Network address ranges
    export AKS_SUBNET_CIDR='<aks-node-subnet-cidr>'
    export AKS_POD_CIDR='<aks-pod-cidr>'
    export AKS_NODE_CIDR='<aks-site-node-cidr>'
    export FLEX_HOST_SUBNET_CIDR='<flex-host-subnet-cidr>'
    export FLEX_NODE_CIDR='<flex-site-node-cidr>'
    export FLEX_POD_CIDR='<flex-node-pod-cidr>'
    export SERVICE_CIDR='<kubernetes-service-cidr>'
    export DNS_SERVICE_IP='<kubernetes-dns-service-ip>'
    
    # Azure-managed AKS system node pool
    export AKS_NODE_VM_SIZE='<supported-and-available-aks-node-vm-size>'
    
    # Compatible component versions for flex nodes (preview)
    export AKS_VERSION='1.36.2'
    export AKS_PREVIEW_VERSION='22.0.0b8'
    export UNBOUNDED_VERSION='v0.8.0'
    export AKS_FLEX_NODE_VERSION='v0.2.0'
    
    # Local paths
    export WORK_DIR="${HOME}/.local/share/aksflexnode/${FLEXNODE_DEPLOYMENT}"
    
    # Values recorded by later articles
    export AKS_RESOURCE_ID=''
    export FLEXNODE_KUBECONFIG=''
    export FLEX_POOL_RESOURCE_ID=''
    export FLEX_MACHINE_NAME=''
    export FLEX_HOST_NAME=''
    export FLEX_HOST_SSH_TARGET=''
    export FLEX_HOST_PRIVATE_IP=''
    export HOST_PRINCIPAL_OBJECT_ID=''
    export HOST_IDENTITY_CLIENT_ID=''
    export SSH_PUBLIC_KEY_PATH=''
    export SSH_PRIVATE_KEY_PATH=''
    export VM_RESOURCE_GROUP=''
    export VM_NAME=''
    export VM_RESOURCE_ID=''
    export ARC_RESOURCE_GROUP=''
    export ARC_MACHINE_NAME=''
    export ARC_RESOURCE_ID=''
    export SP_TENANT_ID=''
    export SP_CLIENT_ID=''
    export SP_OBJECT_ID=''
    EOF
    fi
    

    set_flexnode_env ヘルパーを使用すると、後の記事では、重複する定義をファイルに追加することなく、Azure生成された値を記録できます。

  3. エディターで ${FLEXNODE_ENV_FILE} を開き、山かっこで囲まれた各値を置き換えます。 後の記事で記録された値は空のままにします。

  4. プレースホルダーが残っていないかどうかを確認します。

    if grep -n '<[^>]*>' "${FLEXNODE_ENV_FILE}"; then
        printf 'Replace the unresolved placeholders before you continue.\n' >&2
        false
    else
        printf 'No unresolved placeholders found.\n'
    fi
    
  5. 環境ファイルを読み込み、作業ディレクトリを作成し、アクティブなAzure サブスクリプションを設定します。

    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    az account set --subscription "${SUBSCRIPTION_ID}"
    az account show \
        --query "{Name:name,SubscriptionId:id}" \
        --output table
    

    返されたサブスクリプション ID が SUBSCRIPTION_IDと一致することを確認します。

    AKS_API_ACCESSがサポートされているパスを識別していることを確認します。

    case "${AKS_API_ACCESS}" in
        public|private)
            printf 'AKS API access: %s\n' "${AKS_API_ACCESS}"
            ;;
        *)
            printf 'Set AKS_API_ACCESS to public or private.\n' >&2
            false
            ;;
    esac
    

    デプロイ ラベルを設定し、その環境ファイルを読み込んで、新しいターミナル セッションを開始します。

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_FILE="${HOME}/.config/aks-flexnode/${FLEXNODE_DEPLOYMENT}.env"
    test -s "${FLEXNODE_ENV_FILE}"
    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    

計画値を検証する

選択した AKS サブネットを確認します。

az network vnet subnet show \
    --resource-group "${AKS_VNET_RESOURCE_GROUP}" \
    --vnet-name "${AKS_VNET_NAME}" \
    --name "${AKS_SUBNET_NAME}" \
    --query "{AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes,ResourceId:id}" \
    --output json

返されたリソース ID とアドレス範囲が AKS_SUBNET_ID と AKS_SUBNET_CIDRと一致することを確認します。

次のステップ

次 に、フレックス ノード用の AKS クラスターを準備します。 次の記事では、パブリックまたはプライベートの AKS クラスターを作成し、クラスター リソース ID を記録します。