2.3. ネットワークの準備
ピア Pod のアウトバウンド接続を設定してネットワークを準備する必要があります。このタスクは、以下のいずれかの方法で実行できます。
- NAT ゲートウェイをデフォルトのワーカーサブネットに追加します。この方法はシンプルで、クラスターリソースを再利用しますが、分離性は低くなります。
- ピア Pod 専用の VNet とサブネットを作成し、NAT ゲートウェイを接続して、クラスター VNet とピアリングします。この方法はより複雑ですが、より高い分離性と柔軟性を実現します。
2.3.1. デフォルトのワーカーサブネットの設定 リンクのコピーリンクがクリップボードにコピーされました!
NAT ゲートウェイを接続することで、送信接続用のデフォルトのワーカーサブネットを設定できます。この方法はシンプルで、クラスターリソースを再利用しますが、専用の仮想ネットワークよりも分離性が低くなります。
前提条件
-
Azure CLI (
az) がインストールされ、認証されている。 - Azure リソースグループと VNet への管理者アクセス権がある。
手順
次のコマンドを実行して、
AZURE_RESOURCE_GROUP環境変数を設定します。AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster \ -o jsonpath='{.status.platformStatus.azure.resourceGroupName}')$ AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster \ -o jsonpath='{.status.platformStatus.azure.resourceGroupName}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AZURE_REGION環境変数を設定します。AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP}\ --query "{Location:location}" --output tsv) && \ echo "AZURE_REGION: \"$AZURE_REGION\""$ AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP}\ --query "{Location:location}" --output tsv) && \ echo "AZURE_REGION: \"$AZURE_REGION\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AZURE_VNET_NAME環境変数を設定します。AZURE_VNET_NAME=$(az network vnet list \ -g "${AZURE_RESOURCE_GROUP}" --query '[].name' -o tsv)$ AZURE_VNET_NAME=$(az network vnet list \ -g "${AZURE_RESOURCE_GROUP}" --query '[].name' -o tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AZURE_SUBNET_ID環境変数を設定します。AZURE_SUBNET_ID=$(az network vnet subnet list \ --resource-group "${AZURE_RESOURCE_GROUP}" \ --vnet-name "${AZURE_VNET_NAME}" --query "[].{Id:id} \ | [? contains(Id, 'worker')]" --output tsv)$ AZURE_SUBNET_ID=$(az network vnet subnet list \ --resource-group "${AZURE_RESOURCE_GROUP}" \ --vnet-name "${AZURE_VNET_NAME}" --query "[].{Id:id} \ | [? contains(Id, 'worker')]" --output tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod サブネットの NAT ゲートウェイ環境変数を設定します。
export PEERPOD_NAT_GW=peerpod-nat-gw
$ export PEERPOD_NAT_GW=peerpod-nat-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow export PEERPOD_NAT_GW_IP=peerpod-nat-gw-ip
$ export PEERPOD_NAT_GW_IP=peerpod-nat-gw-ipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NAT ゲートウェイのパブリック IP アドレスを作成します。
az network public-ip create -g "${AZURE_RESOURCE_GROUP}" \ -n "${PEERPOD_NAT_GW_IP}" -l "${AZURE_REGION}" --sku Standard$ az network public-ip create -g "${AZURE_RESOURCE_GROUP}" \ -n "${PEERPOD_NAT_GW_IP}" -l "${AZURE_REGION}" --sku StandardCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NAT ゲートウェイを作成し、パブリック IP アドレスに関連付けます。
az network nat gateway create -g "${AZURE_RESOURCE_GROUP}" \ -l "${AZURE_REGION}" --public-ip-addresses "${PEERPOD_NAT_GW_IP}" \ -n "${PEERPOD_NAT_GW}"$ az network nat gateway create -g "${AZURE_RESOURCE_GROUP}" \ -l "${AZURE_REGION}" --public-ip-addresses "${PEERPOD_NAT_GW_IP}" \ -n "${PEERPOD_NAT_GW}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、NAT ゲートウェイを使用するように VNet サブネットを更新します。
az network vnet subnet update --nat-gateway "${PEERPOD_NAT_GW}" \ --ids "${AZURE_SUBNET_ID}"$ az network vnet subnet update --nat-gateway "${PEERPOD_NAT_GW}" \ --ids "${AZURE_SUBNET_ID}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを実行して、NAT ゲートウェイが VNet サブネットに割り当てられていることを確認します。
az network vnet subnet show --ids "${AZURE_SUBNET_ID}" \ --query "natGateway.id" -o tsv$ az network vnet subnet show --ids "${AZURE_SUBNET_ID}" \ --query "natGateway.id" -o tsvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には NAT ゲートウェイリソース ID が含まれます。NAT ゲートウェイが接続されていない場合、出力は空になります。
出力例
/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/myResourceGroup/providers/Microsoft.Network/natGateways/myNatGateway
/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/myResourceGroup/providers/Microsoft.Network/natGateways/myNatGatewayCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.2. 専用ピア Pod 仮想ネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
専用の仮想ネットワーク (VNet) を作成することで、ピア Pod の送信接続を設定できます。次に、VNet のネットワークアドレス変換 (NAT) ゲートウェイを作成し、VNet 内にサブネットを作成し、重複していないアドレス空間で VNet ピアリングを有効にします。
この方法は、デフォルトのワーカーサブネットに NAT ゲートウェイを作成するよりも複雑ですが、分離性と柔軟性が向上します。
前提条件
-
Azure CLI (
az) がインストールされている、 - Azure にサインインしている。Azure CLI を使用した Azure の認証 を参照してください。
- クラスターをホストする Azure リソースグループおよび VNet への管理者アクセスがある。
-
クラスターの VNet classless inter-domain routing (CIDR) アドレスを検証した。デフォルト値は
10.0.0.0/14です。デフォルト値をオーバーライドした場合は、CIDR アドレスがピア Pod の VNet と重複していないことを確認してください。たとえば、192.168.0.0/16です。
手順
ピア Pod ネットワークの環境変数を設定します。
次のコマンドを実行して、ピア Pod VNet 環境変数を設定します。
export PEERPOD_VNET_NAME="${PEERPOD_VNET_NAME:-peerpod-vnet}"$ export PEERPOD_VNET_NAME="${PEERPOD_VNET_NAME:-peerpod-vnet}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PEERPOD_VNET_CIDR="${PEERPOD_VNET_CIDR:-192.168.0.0/16}"$ export PEERPOD_VNET_CIDR="${PEERPOD_VNET_CIDR:-192.168.0.0/16}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod サブネット環境変数を設定します。
export PEERPOD_SUBNET_NAME="${PEERPOD_SUBNET_NAME:-peerpod-subnet}"$ export PEERPOD_SUBNET_NAME="${PEERPOD_SUBNET_NAME:-peerpod-subnet}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PEERPOD_SUBNET_CIDR="${PEERPOD_SUBNET_CIDR:-192.168.0.0/16}"$ export PEERPOD_SUBNET_CIDR="${PEERPOD_SUBNET_CIDR:-192.168.0.0/16}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Azure の環境変数を設定します。
AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster \ -o jsonpath='{.status.platformStatus.azure.resourceGroupName}')$ AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster \ -o jsonpath='{.status.platformStatus.azure.resourceGroupName}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP}\ --query "{Location:location}" --output tsv) && \ echo "AZURE_REGION: \"$AZURE_REGION\""$ AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP}\ --query "{Location:location}" --output tsv) && \ echo "AZURE_REGION: \"$AZURE_REGION\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow AZURE_VNET_NAME=$(az network vnet list \ -g "${AZURE_RESOURCE_GROUP}" --query '[].name' -o tsv)$ AZURE_VNET_NAME=$(az network vnet list \ -g "${AZURE_RESOURCE_GROUP}" --query '[].name' -o tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod の NAT ゲートウェイ環境変数を設定します。
export PEERPOD_NAT_GW="${PEERPOD_NAT_GW:-peerpod-nat-gw}"$ export PEERPOD_NAT_GW="${PEERPOD_NAT_GW:-peerpod-nat-gw}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PEERPOD_NAT_GW_IP="${PEERPOD_NAT_PUBLIC_IP:-peerpod-nat-gw-ip}"$ export PEERPOD_NAT_GW_IP="${PEERPOD_NAT_PUBLIC_IP:-peerpod-nat-gw-ip}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow VNET を設定します。
次のコマンドを実行して、ピア Pod VNet を作成します。
az network vnet create --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${PEERPOD_VNET_NAME}" \ --address-prefixes "${PEERPOD_VNET_CIDR}"$ az network vnet create --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${PEERPOD_VNET_NAME}" \ --address-prefixes "${PEERPOD_VNET_CIDR}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod VNet のパブリック IP アドレスを作成します。
az network public-ip create -g "${AZURE_RESOURCE_GROUP}" \ -n "${PEERPOD_NAT_GW_IP}" -l "${AZURE_REGION}"$ az network public-ip create -g "${AZURE_RESOURCE_GROUP}" \ -n "${PEERPOD_NAT_GW_IP}" -l "${AZURE_REGION}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod VNet の NAT ゲートウェイを作成します。
az network nat gateway create -g "${AZURE_RESOURCE_GROUP}" \ -l "${AZURE_REGION}" \ --public-ip-addresses "${PEERPOD_NAT_GW_IP}" \ -n "${PEERPOD_NAT_GW}"$ az network nat gateway create -g "${AZURE_RESOURCE_GROUP}" \ -l "${AZURE_REGION}" \ --public-ip-addresses "${PEERPOD_NAT_GW_IP}" \ -n "${PEERPOD_NAT_GW}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ピア Pod VNet にサブネットを作成し、NAT ゲートウェイを接続します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想ネットワークピアリング接続を設定します。
次のコマンドを実行してピアリング接続を作成します。
az network vnet peering create -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}" \ --remote-vnet "${PEERPOD_VNET_NAME}" --allow-vnet-access \ --allow-forwarded-traffic$ az network vnet peering create -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}" \ --remote-vnet "${PEERPOD_VNET_NAME}" --allow-vnet-access \ --allow-forwarded-trafficCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してピアリング接続を同期します。
az network vnet peering sync -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}"$ az network vnet peering sync -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してピアリング接続を完了します。
az network vnet peering create -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-peerpod-vnet-to-azure-vnet \ --vnet-name "${PEERPOD_VNET_NAME}" \ --remote-vnet "${AZURE_VNET_NAME}" --allow-vnet-access \ --allow-forwarded-traffic$ az network vnet peering create -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-peerpod-vnet-to-azure-vnet \ --vnet-name "${PEERPOD_VNET_NAME}" \ --remote-vnet "${AZURE_VNET_NAME}" --allow-vnet-access \ --allow-forwarded-trafficCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、クラスター VNet からのピアリング接続ステータスを確認します。
az network vnet peering show -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}" \ --query "peeringState" -o tsv$ az network vnet peering show -g "${AZURE_RESOURCE_GROUP}" \ -n peerpod-azure-vnet-to-peerpod-vnet \ --vnet-name "${AZURE_VNET_NAME}" \ --query "peeringState" -o tsvCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
Connectedが返されるはずです。次のコマンドを実行して、NAT ゲートウェイがピア Pod サブネットに接続されていることを確認します。
az network vnet subnet show --resource-group "${AZURE_RESOURCE_GROUP}" \ --vnet-name "${PEERPOD_VNET_NAME}" --name "${PEERPOD_SUBNET_NAME}" \ --query "natGateway.id" -o tsv$ az network vnet subnet show --resource-group "${AZURE_RESOURCE_GROUP}" \ --vnet-name "${PEERPOD_VNET_NAME}" --name "${PEERPOD_SUBNET_NAME}" \ --query "natGateway.id" -o tsvCopy to Clipboard Copied! Toggle word wrap Toggle overflow