Azure Kubernetes Service (AKS) で送信の種類を使用してクラスター エグレスをカスタマイズする
特定のシナリオに合わせて、AKS クラスターのエグレスをカスタマイズできます。 既定では、AKS でプロビジョニングされる Standard SKU ロード バランサーは、エグレス用に設定および使用されます。 ただし、パブリック IP が許可されていない場合、またはエグレスに追加のホップが必要な場合、既定の設定ではすべてのシナリオの要件を満たせない可能性があります。
この記事では、AKS クラスターで使用できるさまざまな種類の送信接続について説明します。
Note
クラスターの作成後に outboundType
を更新できるようになりました。
重要
公開クラスターでは、API サーバー クラスターのトラフィックは、クラスターのアウトバウンド タイプを通じてルーティングされ、処理されます。 API サーバー トラフィックがパブリック トラフィックとして処理されることを防ぐには、プライベート クラスターの使用を検討するか、API Server VNet 統合機能を確認してください。
制限事項
outboundType
を設定するには、vm-set-type
をVirtualMachineScaleSets
、load-balancer-sku
をStandard
に設定した AKS クラスターが必要です。
AKS の送信の種類
送信の種類としてロード バランサー、NAT ゲートウェイ、またはユーザー定義ルーティングを使用して、AKS クラスターを構成できます。 送信の種類は、クラスターのエグレス トラフィックにのみ影響します。 詳細については、イングレス コントローラーの設定に関する記事を参照してください。
Note
UDR と Kubernet ネットワークでは、独自の [ルート テーブル][byo-route-table] を使用できます。 クラスター ID (サービス プリンシパルまたはマネージド ID) に、カスタム ルート テーブルへの共同作成者のアクセス許可があることを確認します。
loadBalancer
の送信の種類
ロード バランサーは、AKS に割り当てられたパブリック IP を経由したエグレスに使用されます。 loadBalancer
の送信の種類は、種類 loadBalancer
の Kubernetes サービスをサポートします。このサービスでは、AKS リソース プロバイダーによって作成されたロード バランサーからのエグレスが想定されます。
loadBalancer
が設定されている場合、AKS によって次の構成が自動的に完了します。
- パブリック IP アドレスは、クラスターのエグレス用にプロビジョニングされます。
- パブリック IP アドレスは、ロード バランサーのリソースに割り当てられます。
- ロード バランサーのバックエンド プールは、クラスター内のエージェント ノードに設定されます。
詳細については、AKS で標準ロード バランサーを使用することに関するページを参照してください。
managedNatGateway
または userAssignedNatGateway
の送信の種類
outboundType
に managedNatGateway
または userAssignedNatGateway
が選択されている場合、AKS はクラスター エグレスに Azure Networking NAT ゲートウェイを使用します。
- マネージド仮想ネットワークを使用する場合は、
managedNatGateway
を選択します。 AKS によって NAT ゲートウェイがプロビジョニングされ、クラスター サブネットにアタッチされます。 - 独自の仮想ネットワークを使用する場合は、
userAssignedNatGateway
を選択します。 このオプションを選択するには、クラスターの作成前に NAT ゲートウェイをプロビジョニングしておく必要があります。
詳細については、AKS で NAT ゲートウェイを使用することに関するページを参照してください。
userDefinedRouting
の送信の種類
Note
userDefinedRouting
の送信の種類は高度なネットワーク シナリオであり、適切なネットワーク構成が必要です。
userDefinedRouting
を設定しても、エグレス パスは AKS によって自動的に構成されません。 エグレス セットアップは、ユーザーが行う必要があります。
以前構成済みのサブネットがある既存の仮想ネットワークに AKS クラスターをデプロイする必要があります。 標準ロード バランサー (SLB) アーキテクチャを使用していないため、明示的なエグレスを確立する必要があります。 このアーキテクチャでは、ファイアウォール、ゲートウェイ、プロキシなどのアプライアンスにエグレス トラフィックを明示的に送信するか、標準ロード バランサーまたはアプライアンスに割り当てられたパブリック IP によって NAT を実行できるようにする必要があります。
詳細については、ユーザー定義ルーティングを使用してクラスター エグレスを構成することに関するページを参照してください。
クラスターの作成後に outboundType
を更新する
クラスターの作成後に送信の種類を変更すると、クラスターを新しいエグレス構成に配置するために必要なリソースがデプロイまたは削除されます。
次の表は、マネージド仮想ネットワークと BYO 仮想ネットワークの送信の種類の間でサポートされている移行パスを示したものです。
マネージド VNet でサポートされている移行パス
各行は、送信の種類を上部に表示されている種類に移行できるかどうかを示します。 "サポート対象" とは移行が可能であることを意味し、"サポート対象外" または "N/A" は移行できないことを意味します。
From|To | loadBalancer |
managedNATGateway |
userAssignedNATGateway |
userDefinedRouting |
---|---|---|---|---|
loadBalancer |
該当なし | サポートされています | サポートされていません | サポートされていません |
managedNATGateway |
サポートされています | N/A | サポートされていません | サポートされていません |
userAssignedNATGateway |
サポートされていません | サポートされていません | なし | サポートされていません |
BYO VNet でサポートされている移行パス
From|To | loadBalancer |
managedNATGateway |
userAssignedNATGateway |
userDefinedRouting |
---|---|---|---|---|
loadBalancer |
該当なし | サポートされていません | サポートされています | サポート対象 |
managedNATGateway |
サポートされていません | なし | サポートされていません | サポートされていません |
userAssignedNATGateway |
サポート対象 | サポートされていません | 該当なし | サポートされています |
userDefinedRouting |
サポート対象 | サポートされていません | サポートされています | N/A |
移行は、loadBalancer
、managedNATGateway
(マネージド仮想ネットワークを使用している場合)、userAssignedNATGateway
、userDefinedRouting
(カスタム仮想ネットワークを使用している場合) の間でのみサポートされています。
警告
送信の種類をユーザー管理型 (userAssignedNATGateway
および userDefinedRouting
) に移行すると、クラスターの送信パブリック IP アドレスが変更されます。
[承認された IP 範囲] が有効になっている場合は、承認された IP 範囲に新しい送信 IP 範囲が追加されていることを確認してください。
警告
クラスターの送信の種類を変更すると、ネットワーク接続が中断され、クラスターのエグレス IP アドレスが変更されます。 クラスターからのトラフィックを制限するようにファイアウォール規則が構成されている場合は、新しいエグレス IP アドレスに一致するように更新する必要があります。
新しい送信の種類を使用するようにクラスターを更新する
Note
送信の種類の移行には、Azure CLI のバージョン >= 2.56 を使用する必要があります。 az upgrade
を使用して、Azure CLI の最新バージョンに更新してください。
az aks update
コマンドを使用して、クラスターの送信構成を更新します。
クラスターを loadbalancer から managedNATGateway に更新する
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type managedNATGateway --nat-gateway-managed-outbound-ip-count <number of managed outbound ip>
クラスターを managedNATGateway から loadbalancer に更新する
az aks update --resource-group <resourceGroup> --name <clusterName> \
--outbound-type loadBalancer \
<--load-balancer-managed-outbound-ip-count <number of managed outbound ip>| --load-balancer-outbound-ips <outbound ip ids> | --load-balancer-outbound-ip-prefixes <outbound ip prefix ids> >
警告
以前の送信構成で既に使用されている IP アドレスは再利用しないでください。
managedNATGateway から userDefinedRouting にクラスターを更新する
- ルート
0.0.0.0/0
を既定のルーティング テーブルに追加します。 「Azure Kubernetes Service (AKS) のユーザー定義ルーティング テーブルを使用してクラスターのエグレスをカスタマイズする」を参照してください
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userDefinedRouting
BYO vnet シナリオでクラスターを loadbalancer から userAssignedNATGateway に更新する
- nat ゲートウェイを、ワークロードが関連付けられているサブネットに関連付けます。 マネージドまたはユーザー割り当て NAT ゲートウェイを作成する方法に関するページを参照してください
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userAssignedNATGateway
次のステップ
Azure Kubernetes Service