Azure Arc에서 사용하도록 설정된 AKS의 프록시 서버 설정

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

이 문서에서는 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 컨트롤 플레인 및 작업자 노드로 가져옵니다.

프라이빗 서브넷이 프록시로 전송되는 것을 제외하기 위한 제외 목록

다음 표에는 의 매개 변수를 사용하여 -noProxy 제외해야 하는 주소 목록이 포함되어 있습니다 New-AksHciProxySetting.

IP 주소 제외 이유
localhost, 127.0.0.1 Localhost traffic
.svc 내부 Kubernetes 서비스 트래픽입니다. 여기서 .svc 은 와일드카드 이름을 나타냅니다. 이는 를 말하는 *.svc것과 비슷하지만 이 스키마에는 사용되지 않습니다.
10.0.0.0/8 개인 네트워크 주소 공간.
172.16.0.0/12 프라이빗 네트워크 주소 공간 - Kubernetes 서비스 CIDR.
192.168.0.0/16 프라이빗 네트워크 주소 공간 - Kubernetes Pod 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")

참고

장애 조치(failover) 클러스터의 모든 노드에서 동일한 프록시 설정을 사용하는 것이 좋습니다. 장애 조치(failover) 클러스터의 다른 물리적 노드에 서로 다른 프록시 설정이 있으면 예기치 않은 결과 또는 설치 문제가 발생할 수 있습니다. 또한 와일드카드(*)가 있는 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로 인코딩된 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

참고

프록시 인증서는 PFX(개인 정보 교환) 파일 형식 또는 문자열로 제공되어야 하며 인증 또는 SSL 터널 설정에 인증서를 사용하는 루트 기관 체인을 포함해야 합니다.

다음 단계

이제 다음을 실행 Set-AksHciConfig 하여 Azure Stack HCI 또는 Windows Server 클러스터에 AKS 설치를 Install-AksHci진행할 수 있습니다.