次の方法で共有


Azure Kubernetes Service (AKS) で送信の種類を使用してクラスター エグレスをカスタマイズする

特定のシナリオに合わせて、AKS クラスターのエグレスをカスタマイズできます。 既定では、AKS でプロビジョニングされる Standard SKU ロード バランサーは、エグレス用に設定および使用されます。 ただし、パブリック IP が許可されていない場合、またはエグレスに追加のホップが必要な場合、既定の設定ではすべてのシナリオの要件を満たせない可能性があります。

この記事では、AKS クラスターで使用できるさまざまな種類の送信接続について説明します。

Note

クラスターの作成後に outboundType を更新できるようになりました。

重要

公開クラスターでは、API サーバー クラスターのトラフィックは、クラスターのアウトバウンド タイプを通じてルーティングされ、処理されます。 API サーバー トラフィックがパブリック トラフィックとして処理されることを防ぐには、プライベート クラスターの使用を検討するか、API Server VNet 統合機能を確認してください。

制限事項

  • outboundType を設定するには、vm-set-typeVirtualMachineScaleSetsload-balancer-skuStandard に設定した AKS クラスターが必要です。

AKS の送信の種類

送信の種類としてロード バランサー、NAT ゲートウェイ、またはユーザー定義ルーティングを使用して、AKS クラスターを構成できます。 送信の種類は、クラスターのエグレス トラフィックにのみ影響します。 詳細については、イングレス コントローラーの設定に関する記事を参照してください。

loadBalancer の送信の種類

ロード バランサーは、AKS に割り当てられたパブリック IP を経由したエグレスに使用されます。 loadBalancer の送信の種類は、種類 loadBalancer の Kubernetes サービスをサポートします。このサービスでは、AKS リソース プロバイダーによって作成されたロード バランサーからのエグレスが想定されます。

loadBalancer が設定されている場合、AKS によって次の構成が自動的に完了します。

  • パブリック IP アドレスは、クラスターのエグレス用にプロビジョニングされます。
  • パブリック IP アドレスは、ロード バランサーのリソースに割り当てられます。
  • ロード バランサーのバックエンド プールは、クラスター内のエージェント ノードに設定されます。

イングレス IP とエグレス IP を示す図 (トラフィックはイングレス IP からロード バランサーに送信され、内部クラスター間で送受信され、他のトラフィックはエグレス IP に送信され、インターネット、MCR、Azure の必須サービス、AKS コントロール プレーンに送信されます)。

詳細については、AKS で標準ロード バランサーを使用することに関するページを参照してください。

managedNatGateway または userAssignedNatGateway の送信の種類

outboundTypemanagedNatGateway または userAssignedNatGateway が選択されている場合、AKS はクラスター エグレスに Azure Networking NAT ゲートウェイを使用します。

  • マネージド仮想ネットワークを使用する場合は、managedNatGateway を選択します。 AKS によって NAT ゲートウェイがプロビジョニングされ、クラスター サブネットにアタッチされます。
  • 独自の仮想ネットワークを使用する場合は、userAssignedNatGateway を選択します。 このオプションを選択するには、クラスターの作成前に NAT ゲートウェイをプロビジョニングしておく必要があります。

詳細については、AKS で NAT ゲートウェイを使用することに関するページを参照してください。

userDefinedRouting の送信の種類

Note

userDefinedRouting の送信の種類は高度なネットワーク シナリオであり、適切なネットワーク構成が必要です。

userDefinedRouting を設定しても、エグレス パスは AKS によって自動的に構成されません。 エグレス セットアップは、ユーザーが行う必要があります。

以前構成済みのサブネットがある既存の仮想ネットワークに AKS クラスターをデプロイする必要があります。 標準ロード バランサー (SLB) アーキテクチャを使用していないため、明示的なエグレスを確立する必要があります。 このアーキテクチャでは、ファイアウォール、ゲートウェイ、プロキシなどのアプライアンスにエグレス トラフィックを明示的に送信するか、標準ロード バランサーまたはアプライアンスに割り当てられたパブリック IP によって NAT を実行できるようにする必要があります。

詳細については、ユーザー定義ルーティングを使用してクラスター エグレスを構成することに関するページを参照してください。

none 送信の種類 (プレビュー)

重要

none 送信の種類では、外部サービスに意図しない依存関係を持たずに、クラスターが想定どおりに動作するように慎重に計画する必要があります。 完全に分離されたクラスターについては、「分離クラスターの考慮事項」を参照してください。

none を設定しても、エグレス パスは AKS によって自動的に構成されません。 このオプションは userDefinedRouting に似ていますが、検証の一環として既定のルートを必要ありません。

none 送信の種類は、Bring Your Own (BYO) 仮想ネットワーク シナリオとマネージド VNet シナリオの両方でサポートされます。 ただし、必要に応じて明示的なエグレス パスが定義されているネットワーク環境に AKS クラスターがデプロイされていることを確認する必要があります。 BYO VNet シナリオの場合、クラスターは、以前に構成されたサブネットを持つ既存の仮想ネットワークにデプロイする必要があります。 AKS は標準ロード バランサーやエグレス インフラストラクチャをプロビジョニングしないため、必要に応じて明示的なエグレス パスを確立する必要があります。 これには、ファイアウォール、プロキシ、ゲートウェイ、またはその他のカスタム ネットワーク構成へのトラフィックのルーティングが含まれます。

block 送信の種類 (プレビュー)

重要

block 送信の種類では、意図しないネットワーク依存関係が存在しないように慎重に計画する必要があります。 完全に分離されたクラスターについては、「分離クラスターの考慮事項」を参照してください。

block が設定されている場合、AKS は、クラスターからのすべてのエグレス トラフィックをアクティブにブロッするネットワーク ルールを構成します。 このオプションは、送信接続を制限する必要がある高度にセキュリティで保護された環境に役立ちます。

block を使うとき:

  • AKS を使用すると、ネットワーク セキュリティ グループ (NSG) 規則を介して、パブリック インターネット トラフィックがクラスターから出て行けなくなります。 VNet トラフィックは影響を受けません。
  • 追加のネットワーク構成を介して必要なエグレス トラフィックを明示的に許可する必要があります。

block オプションでは、追加レベルのネットワーク分離が提供されますが、ワークロードや依存関係が壊れないように慎重に計画する必要があります。

クラスターの作成後に outboundType を更新する

クラスターの作成後に送信の種類を変更すると、クラスターを新しいエグレス構成に配置するために必要なリソースがデプロイまたは削除されます。

次の表は、マネージド仮想ネットワークと BYO 仮想ネットワークの送信の種類の間でサポートされている移行パスを示したものです。

マネージド VNet でサポートされている移行パス

各行は、送信の種類を上部に表示されている種類に移行できるかどうかを示します。 "サポート対象" とは移行が可能であることを意味し、"サポート対象外" または "N/A" は移行できないことを意味します。

From|To loadBalancer managedNATGateway userAssignedNATGateway userDefinedRouting none block
loadBalancer 該当なし サポートされています サポートされていません サポートされていません サポートされています サポート対象
managedNATGateway サポートされています N/A サポートされていません サポートされていません サポートされています サポート対象
userAssignedNATGateway サポートされていません サポートされていません なし サポートされていません サポートされていません サポートされていません
none サポートされています サポート対象 サポートされていません サポートされていません 該当なし サポートされています
block サポート対象 サポート対象 サポートされていません サポートされていません サポートされています N/A

BYO VNet でサポートされている移行パス

From|To loadBalancer managedNATGateway userAssignedNATGateway userDefinedRouting none block
loadBalancer 該当なし サポートされていません サポートされています サポート対象 サポート対象 サポートされていません
managedNATGateway サポートされていません なし サポートされていません サポートされていません サポートされていません サポートされていません
userAssignedNATGateway サポート対象 サポートされていません 該当なし サポートされています サポート対象 サポートされていません
userDefinedRouting サポート対象 サポートされていません サポートされています 該当なし サポートされています サポートされていません
none サポート対象 サポートされていません サポートされています サポートされています N/A サポートされていません

移行は、loadBalancermanagedNATGateway (マネージド仮想ネットワークを使用している場合)、userAssignedNATGatewayuserDefinedRouting (カスタム仮想ネットワークを使用している場合) の間でのみサポートされています。

警告

送信の種類をユーザー管理型 (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 にクラスターを更新する

az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userDefinedRouting

BYO vnet シナリオでクラスターを loadbalancer から userAssignedNATGateway に更新する

az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userAssignedNATGateway

次のステップ