Azure Arc 対応 Kubernetes クラスターへのクラスター接続アクセス

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

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

Architecture

Diagram showing cluster connect architecture.

クラスター側では、エージェントの 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 コンポーネントに渡します。これにより、呼び出し元のエンティティで Microsoft Entra 認証が実行されます。
  4. Microsoft Entra 認証後、kube-aad-proxy は Kubernetes の ユーザーの偽装 を使用し、要求をクラスターの apiserver に転送します。

次のステップ