Azure Arc で有効になっている AKS のプロキシ サーバー設定

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

この記事では、Azure Arc で有効になっている AKS のプロキシ設定を構成する方法について説明します。ネットワークでインターネットに接続するためにプロキシ サーバーを使用する必要がある場合は、 AksHci PowerShell モジュールを使用して AKS でプロキシ サポートを設定する手順について説明します。 手順は、プロキシ サーバーで認証が必要かどうかによって異なります。

注意

Azure Arc で Kubernetes と Azure Services を使用する場合は、「 既存の Kubernetes クラスターを Azure Arc に接続する 」に示されている URL も許可リストに追加してください。

次のオプションを使用してデプロイを構成したら、 Azure Stack HCI に AKS ホストをインストール し、 PowerShell を使用して Kubernetes クラスターを作成できます。

開始する前に

システム要件のすべての前提条件を満たしていることを確認します。

プロキシ サーバーの構成情報

AKS デプロイのプロキシ サーバー構成には、次の設定が含まれています。

  • HTTP の URL とポート (http://proxy.corp.contoso.com:8080 など)。
  • HTTPS の URL とポート (https://proxy.corp.contoso.com:8443 など)。
  • (省略可能) プロキシ サーバーへの認証に有効な資格情報。
  • (省略可能) SSL トラフィックをインターセプトするようにプロキシ サーバーが構成されている場合の有効な証明書チェーン。 この証明書チェーンは、プロキシ サーバーへの信頼関係接続を確立するために、すべての AKS コントロール プレーンとワーカー ノードだけでなく、管理クラスターにもインポートされます。

プライベート サブネットがプロキシに送信されないように除外するための除外リスト

次の表に、 の パラメーターNew-AksHciProxySettingを使用して除外する必要があるアドレスの一覧を-noProxy示します。

IP アドレス 除外の理由
localhost, 127.0.0.1 Localhost トラフィック
.svc 内部 Kubernetes サービス トラフィック。ここで .svc 、ワイルドカード名を表します。 これは と言う *.svcのと似ていますが、このスキーマでは何も使用されていません。
10.0.0.0/8 プライベート ネットワーク アドレス空間。
172.16.0.0/12 プライベート ネットワーク アドレス空間 - Kubernetes サービス CIDR。
192.168.0.0/16 プライベート ネットワーク アドレス空間 - Kubernetes ポッド CIDR。
.contoso.com`` | You might want to exempt your enterprise namespace (.contoso.com) from being directed through the proxy. To exclude all addresses in a domain, you must add the domain to the noProxy.contoso.comlist. Use a leading period rather than a wildcard (\*) character. In the example, the addressesexcludes addresses prefix1.contoso.com, prefix2.contoso.com' などです。

noProxy の既定値は localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 です。 これらの既定値は多くのネットワークで機能しますが、除外リストにサブネット範囲や名前を追加する必要がある場合があります。 たとえば、エンタープライズ名前空間 (.contoso.com) がプロキシ経由で送信されないように除外できます。 それには、noProxy リスト内で値を指定します。

コンピューター全体のプロキシ設定がある Azure Stack HCI および Windows Server クラスターでプロキシを設定する

Azure Stack HCI/Windows Server クラスターにコンピューター全体のプロキシ設定が既にある場合は、その設定で AKS 固有のプロキシ設定がオーバーライドされて、インストール時にエラーが発生する可能性があります。

コンピューター全体のプロキシ設定があるかどうかを検出するには、"各" 物理クラスター ノードで次のスクリプトを実行します。

$http_proxy = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
$https_proxy = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
$no_proxy = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

if ($http_proxy -or $https_proxy) {
    if (-not $no_proxy) {
        Write-Host "Problem Detected! A machine-wide proxy server is configured, but no proxy exclusions are configured"
    }
}

問題が検出された "各" 物理クラスター ホストで、コンピューター全体のプロキシ除外を構成します。

次の PowerShell スクリプトを実行して、$no_proxy パラメーター文字列を、環境に適した NO_PROXY 除外文字列に置き換えます。 環境のリストを正しく構成 noProxy する方法については、「 プライベート サブネットをプロキシに送信しないように除外するための除外リスト」を参照してください。

$no_proxy = "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

Note

フェールオーバー クラスター内のすべてのノードで、同じプロキシ設定を使用することをお勧めします。 フェールオーバー クラスター内の物理ノード別にプロキシ設定を変えると、予期しない結果やインストールの問題が生じる可能性があります。 また、ワイルドカード (*) を含む IP アドレス ( 172 など)。*、 は無効です。 IP アドレスは、適切な CIDR 表記 (172.0.0.0/8) である必要があります。

AksHci PowerShell モジュールのインストール

クラスター内の各物理ノードでシステム プロキシ設定を構成し、「 システム要件」で説明されている URL とポートにすべてのノードがアクセスできることを確認します。

リモート PowerShell を使用している場合は、CredSSP を使用する必要があります。

次のコマンドを実行する前に、開いているすべての PowerShell ウィンドウを閉じます。

Install-Module -Name AksHci -Repository PSGallery

環境でプロキシ サーバーを使用してインターネットにアクセスする場合は、AKS をインストールする前に 、Install-Module コマンドにプロキシ パラメーターを追加する必要がある場合があります。 詳細については 、Install-Module のドキュメントを参照 し、 Azure Stack HCI のドキュメント に従って、物理クラスター ノードでプロキシ設定を構成します。

AksHci PowerShell モジュールをダウンロードすると、課金のために AKS ホストを Azure に登録するために必要な Az PowerShell モジュールもダウンロードされます。

基本認証を使用してプロキシ サーバーに対して AKS ホストを構成する

プロキシ サーバーで認証が必要な場合は、管理者として PowerShell を開き、次のコマンドを実行して資格情報を取得し構成の詳細を設定します。

$proxyCred = Get-Credential
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

認証なしでプロキシ サーバーに対して AKS ホストを構成する

お使いのプロキシ サーバーが認証を必要としない場合は、次のコマンドを実行します。

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com

信頼された証明書を使用してプロキシ サーバーに対して AKS ホストを構成する

お使いのプロキシ サーバーにより、プロキシ クライアントが証明書を信頼することが求められている場合は、Set-AksHciConfig を実行するときに証明書ファイルを指定します。 証明書ファイルの形式は Base-64 encoded X .509 です。 これにより、スタック全体で証明書を作成して信頼できます。

重要

プロキシで、物理 Azure Stack HCI ノードによって信頼される証明書が必要な場合は、続行する前に、証明書チェーンを各 Azure Stack HCI ノードの適切な証明書ストアにインポートしてください。 デプロイの手順に従って、プロキシ認証に必要な証明書を含む Azure Stack HCI ノードを登録します。

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

Note

プロキシ証明書は、個人情報交換 (PFX) ファイル形式または文字列として指定する必要があります。また、認証または SSL トンネルのセットアップに証明書を使用するためのルート機関チェーンが含まれている必要があります。

次のステップ

を実行 Set-AksHciConfig して、Azure Stack HCI または Windows Server クラスターへの AKS のインストールに Install-AksHci進むことができます。