Azure Arc で有効になっている AKS のプロキシ サーバー設定
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
この記事では、Azure Arc で有効になっている AKS のプロキシ設定を構成する方法について説明します。ネットワークでインターネットに接続するためにプロキシ サーバーを使用する必要がある場合、この記事では、 AksHci PowerShell モジュールを使用して AKS でプロキシ サポートを設定する手順について説明します。 手順は、プロキシ サーバーで認証が必要かどうかによって異なります。
Note
Azure Arc で Kubernetes と Azure Services を使用する場合は、「 既存の Kubernetes クラスターを Azure Arc に接続する に表示される URL も許可リストに追加してください。
次のオプションを使用してデプロイを構成したら、Azure Local に 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 アドレス (IP address) | 除外の理由 |
---|---|
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 noProxylist. Use a leading period rather than a wildcard (\*) character. In the example, the addresses .contoso.comexcludes 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 Local クラスターと Windows Server クラスターのプロキシを設定する
Azure Local/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
一覧を正しく構成する方法については、「 プロキシへのプライベート サブネットの送信を除外する場合のExclusion リストを参照してください。
$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
フェールオーバー クラスター内のすべてのノードで、同じプロキシ設定を使用することをお勧めします。 フェールオーバー クラスター内の物理ノード別にプロキシ設定を変えると、予期しない結果やインストールの問題が生じる可能性があります。 また、 172. など、ワイルドカード (*) を持つ IP アドレス*、無効です。 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 Local のドキュメントに従って 物理クラスター ノードのプロキシ設定を構成します。
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 ローカル ノードによって証明書を信頼する必要がある場合は、続行する前に、証明書チェーンを各 Azure ローカル ノード上の適切な証明書ストアにインポートしてください。 デプロイの手順に従って、プロキシ認証に必要な証明書を使用して Azure ローカル ノードを登録します。
$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
を実行し、その後にInstall-AksHci
を実行することで、Azure Local または Windows Server クラスターへの AKS のインストールに進むことができます。