Azure Arc 対応 Kubernetes でのクラスター接続

Azure Arc 対応 Kubernetes "クラスター接続" 機能を使用すると、ファイアウォールで受信ポートを有効にしなくても、クラスターの apiserver に接続できます。 クラスターで実行されているリバース プロキシ エージェントでは、Azure Arc サービスとのセッションを送信方法で安全に開始できます。

クラスター接続を使用すると、開発者は任意の場所からクラスターにアクセスして、対話型の開発とデバッグを行うことができます。 また、クラスターのユーザーと管理者は、どこからでもクラスターにアクセスしたり管理したりすることができます。 Azure Pipelines または GitHub Actions のホステッド エージェントやランナー、またはその他のホストされる CI/CD サービスを使用して、アプリケーションをオンプレミス クラスターにデプロイすることもできます。自己ホスト型のエージェントは必要ありません。

重要

Azure Arc 対応 Kubernetes のプレビュー機能は、セルフサービス、オプトイン ベースで利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 Azure Arc 対応 Kubernetes のプレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。

アーキテクチャ

クラスター接続のアーキテクチャ

クラスター側では、エージェントの Helm グラフの一部としてデプロイされたリバース プロキシ エージェント (clusterconnect-agent と呼ばれる) により、Azure Arc サービスに対して発信呼び出しが行われて、セッションが確立されます。

ユーザーが az connectedk8s proxy を呼び出すと、次の処理が行われます。

  1. Azure Arc プロキシ バイナリがダウンロードされ、クライアント コンピューター上のプロセスとしてスピンアップされます。
  2. Azure Arc プロキシにより、az connectedk8s proxy が呼び出された Azure Arc 対応 Kubernetes クラスターに関連付けられている kubeconfig ファイルがフェッチされます。
    • Azure Arc プロキシにより、呼び出し元の Azure アクセス トークンと Azure Resource Manager ID 名が使用されます。
  3. Azure Arc プロキシによってコンピューターに保存された kubeconfig ファイルにより、サーバーの URL が Azure Arc プロキシ プロセスのエンドポイントがポイントされます。

ユーザーがこの kubeconfig ファイルを使用して要求を送信すると、次の処理が行われます。

  1. Azure Arc プロキシにより、要求を受信するエンドポイントが Azure Arc サービスにマップされます。
  2. その後、Azure Arc サービスにより、クラスターで実行されている clusterconnect-agent に要求が転送されます。
  3. clusterconnect-agent により、要求が kube-aad-proxy コンポーネントに渡されます。これにより、呼び出し元のエンティティで Azure AD 認証が実行されます。
  4. Azure AD 認証後、kube-aad-proxy によって Kubernetes の "ユーザーの偽装" 機能を使用して、要求がクラスターの apiserver に転送されます。

次の手順