エンタープライズ プロキシを使用して送信トラフィックを管理する場合、Azure Arc ゲートウェイ (プレビュー) は、接続を有効にするプロセスを簡略化できます。
Azure Arc ゲートウェイ (プレビュー) では、次のことができます。
- 7 つの完全修飾ドメイン名 (FQDN) にのみ公衆ネットワーク アクセスを開いて、Azure Arc に接続します。
- Arc エージェントが Arc ゲートウェイ経由で Azure に送信するすべてのトラフィックを表示および監査します。
重要
Azure Arc ゲートウェイは現在プレビュー段階です。
ベータ版、プレビュー版、またはその他の一般提供にまだリリースされていない Azure 機能に適用される法的条件については、 Microsoft Azure プレビューの追加使用条件 を参照してください。
Azure Arc ゲートウェイのしくみ
Arc ゲートウェイは、2 つの新しいコンポーネントを導入することで機能します
Arc ゲートウェイ リソースは、Azure トラフィックの共通フロントエンドとして機能する Azure リソースです。 ゲートウェイ リソースは、特定のドメイン/URL 上で提供されます。 このリソースは、この記事の中で説明されている手順に従って作成する必要があります。 ゲートウェイ リソースが正常に作成されると、このドメイン/URL が成功時の応答の中に含まれます。
Arc プロキシは、独自のポッド ("Azure Arc プロキシ" と呼ばれます) として実行される新しいコンポーネントです。 このコンポーネントは、Azure Arc エージェントと拡張機能によって使用される、転送プロキシとして機能します。 Azure Arc プロキシに対して、ユーザー側で構成する必要はありません。 バージョン 1.21.10 の Arc 対応 Kubernetes エージェントの時点で、このポッドはコア Arc エージェントの一部となり、Arc 対応 Kubernetes クラスターのコンテキスト内で実行されるようになりました。
ゲートウェイが配置されると、トラフィックは次のホップを経由して送信されます。Arc エージェント → Azure Arc プロキシ → エンタープライズ プロキシ → Arc ゲートウェイ → ターゲット サービス。
アーキテクチャ図を高解像度でダウンロードするには、 Jumpstart Gem にアクセスしてください。
現在の制限
パブリック プレビュー中は、次の制限事項が適用されます。 構成を計画する際は、これらの要因を考慮してください。
- TLS 終端プロキシは、Arc ゲートウェイではサポートされていません。
- Arc ゲートウェイに加えて、ExpressRoute/サイト間 VPN またはプライベート エンドポイントを使用することはできません。
- Azure サブスクリプションごとに 5 つまでという Arc ゲートウェイ リソースの制限があります。
- Arc ゲートウェイは、Azure パブリック クラウドでの接続にのみ使用できます。
Arc ゲートウェイ リソースは、Azure CLI または Azure PowerShell を使用して作成できます。
Arc ゲートウェイ リソースを作成する際は、そのリソースが作成されるサブスクリプションとリソース グループを、Azure リージョンと共に指定します。 ただし、同じテナント内のすべての Arc 対応リソースは、独自のサブスクリプションまたは Azure リージョンに関係なくそのリソースを使用できます。
Arc ゲートウェイ リソースを作成し、Arc 対応 Kubernetes クラスターとの関連付けを管理するには、次のアクセス許可が必要です。
Microsoft.Kubernetes/connectedClusters/settings/default/write
Microsoft.hybridcompute/gateways/read
Microsoft.hybridcompute/gateways/write
Arc ゲートウェイ リソースを作成する
Azure にアクセスできるマシンで、次の Azure CLI コマンドを実行します。
az extension add -n arcgateway
それから、次の Azure CLI コマンドを実行して Arc ゲートウェイ リソースを作成し、プレースホルダーを目的の値に置き換えます。
az arcgateway create --name <gateway's name> --resource-group <resource group> --___location <region> --gateway-type public --allowed-features * --subscription <subscription name or id>
通常、Arc ゲートウェイ リソースの作成が完了するまでに約 10 分かかります。
必要な URL へのアクセスを確認する
リソースが正常に作成されると、成功時の応答に Arc ゲートウェイ URL が含まれます。 Arc リソースが存在する環境内で、Arc ゲートウェイ URL と、以下のすべての URL が許可されていることを確認します。
URL | 目的 |
---|---|
[Your URL prefix].gw.arc.azure.com |
ゲートウェイ URL。 この URL は、リソースの作成後に az arcgateway list を実行することで取得できます。 |
management.azure.com |
ARM コントロール チャネルに必要な Azure Resource Manager エンドポイント。 |
<region>.obo.arc.azure.com |
クラスター接続が構成されている場合に必要です。 |
login.microsoftonline.com 、<region>.login.microsoft.com |
ID アクセス トークンを取得するために使用される Microsoft Entra ID エンドポイント。 |
gbl.his.arc.azure.com 、<region>.his.arc.azure.com |
Arc エージェントと通信するためのクラウド サービス エンドポイント。 短い名前を使用します (米国東部の場合は eus など)。 |
mcr.microsoft.com 、*.data.mcr.microsoft.com |
Azure Arc エージェント用のコンテナー イメージをプルするために必要です。 |
Arc ゲートウェイ リソースを使用して Kubernetes クラスターを Azure Arc にオンボードする
環境が Azure Arc 対応 Kubernetes に必要なすべての前提条件を満たしていることを確認します。 Azure Arc ゲートウェイを使用しているため、一連のネットワーク要件のすべてを満たす必要はありません。
送信プロキシ サーバーを使用するには、デプロイ マシンで Azure CLI に必要な環境変数を設定します。
export HTTP_PROXY=<proxy-server-ip-address>:<port>
export HTTPS_PROXY=<proxy-server-ip-address>:<port>
export NO_PROXY=<cluster-apiserver-ip-address>:<port>
Kubernetes クラスターで、
proxy-https
パラメーターとproxy-http
パラメーターを指定して connect コマンドを実行します。 プロキシ サーバーが HTTP と HTTPS の両方で設定されている場合は、HTTP プロキシには--proxy-http
、HTTPS プロキシには--proxy-https
を必ず使用してください。 プロキシ サーバーで HTTP のみが使用される場合は、両方のパラメーターにその値を使用できます。az connectedk8s connect -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id> --proxy-https <proxy_value> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --___location <region>
注
一部のネットワーク要求 (クラスター内のサービス間通信を含むものなど) は、送信の通信のためにプロキシ サーバーを介してルーティングされるトラフィックから分離する必要があります。
--proxy-skip-range
パラメーターを使用し、CIDR 範囲とエンドポイントをコンマ区切りで指定することで、エージェントからこれらのエンドポイントへの通信が送信プロキシ経由で行われないようにすることができます。 少なくとも、クラスター内のサービスの CIDR 範囲は、このパラメーターの値として指定する必要があります。 たとえばkubectl get svc -A
が、すべてのサービスがClusterIP
範囲内の10.0.0.0/16
値を持つサービスの一覧を返す場合、--proxy-skip-range
に指定する値は10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
です。--proxy-http
、--proxy-https
、および--proxy-skip-range
は、ほとんどの送信プロキシ環境に必要です。--proxy-cert
は、プロキシが求める信頼された証明書を、エージェント ポッドの信頼された証明書ストアに挿入する必要がある場合にのみ必要となります。送信プロキシは、websocket 接続を許可するように構成する必要があります。
Arc ゲートウェイを使用するように既存のクラスターを構成する
Arc ゲートウェイを使用するように既存のクラスターを更新するには、次のコマンドを実行します。
az connectedk8s update -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id>
更新が成功したことを確認するには、次のコマンドを実行し、応答が true
であることを確認します。
az connectedk8s show -g <resource_group> -n <cluster_name> --query 'gateway.enabled'
クラスターが Arc ゲートウェイを使用するように更新されると、エンタープライズ プロキシまたはファイアウォール内で以前に許可されていた一部の Arc エンドポイントは不要になり、削除できます。 不要になったエンドポイントを削除する前に、少なくとも 1 時間待機することをお勧めします。 Arc ゲートウェイに必要なエンドポイントは削除しないでください。
Arc ゲートウェイを削除する
重要
ここで説明する手順は、Arc 対応 Kubernetes 上の Arc ゲートウェイにのみ適用されます。 Azure Local での Arc ゲートウェイのデタッチの詳細については、「Azure Local の Azure Arc ゲートウェイについて (プレビュー)」を参照してください。
Arc ゲートウェイを無効にし、Arc ゲートウェイ リソースと Arc 対応クラスター間の関連付けを削除するには、次のコマンドを実行します。
az connectedk8s update -g <resource_group> -n <cluster_name> --disable-gateway
トラフィックを監視
ゲートウェイのトラフィックを監査するには、ゲートウェイ ルーターのログを表示します。
-
kubectl get pods -n azure-arc
を実行します。 - Arc プロキシ ポッドを特定します (その名前は
arc-proxy-
で始まります)。 -
kubectl logs -n azure-arc <Arc Proxy pod name>
を実行します。
その他のシナリオ
パブリック プレビュー期間中、Arc ゲートウェイは、クラスターのオンボードに必要なエンドポイントと、Arc 対応の追加シナリオに必要なエンドポイントの一部をカバーします。 採用するシナリオに基づいて、プロキシ内で追加のエンドポイントを引き続き許可する必要があります。
Arc ゲートウェイが使用されている場合は、次のシナリオに記載されているすべてのエンドポイントを、エンタープライズ プロキシ内で許可する必要があります。
-
Azure Monitor のコンテナーの分析情報:
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
*.monitoring.azure.com
-
Azure Key Vault:
<vault-name>.vault.azure.net
-
Azure Policy:
data.policy.core.windows.net
store.policy.core.windows.net
-
Microsoft Defender for Containers:
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
-
Azure Arc 対応データ サービス
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
*.monitoring.azure.com