Azure Arc 네트워크 요구 사항에서 사용하도록 설정된 AKS

적용 대상: Azure Stack HCI, 버전 23H2

이 문서에서는 Azure Arc에서 사용하도록 설정된 AKS의 VM 및 애플리케이션에 대한 핵심 네트워킹 개념을 소개합니다. 이 문서에서는 Kubernetes 클러스터를 만드는 데 필요한 네트워킹 필수 구성 요소도 설명합니다. Arc에서 사용하도록 설정된 AKS를 배포하는 데 필요한 네트워킹 매개 변수를 제공하고 설정하려면 네트워크 관리자와 협력하는 것이 좋습니다.

이 개념 문서에서는 다음과 같은 주요 구성 요소가 도입되었습니다. AKS Arc 클러스터 및 애플리케이션이 성공적으로 만들고 작동하려면 이러한 구성 요소에 고정 IP 주소가 필요합니다.

  • AKS 클러스터 VM
  • AKS 컨트롤 플레인 IP
  • 컨테이너화된 애플리케이션에 대한 부하 분산 장치

AKS 클러스터 VM에 대한 네트워킹

Kubernetes 노드는 Arc에서 사용하도록 설정된 AKS에서 특수 가상 머신으로 배포됩니다. 이러한 VM은 Kubernetes 노드 간에 통신할 수 있도록 할당된 IP 주소입니다. AKS Arc는 Azure Stack HCI 논리 네트워크를 사용하여 Kubernetes 클러스터의 기본 VM에 대한 IP 주소 및 네트워킹을 제공합니다. 논리 네트워크에 대한 자세한 내용은 Azure Stack HCI용 논리 네트워크를 참조하세요. Azure Stack HCI 환경에서 AKS 클러스터 노드 VM당 하나의 IP 주소를 예약해야 합니다.

참고

고정 IP는 AKS Arc VM에 IP 주소를 할당하는 데 유일하게 지원되는 모드입니다. Kubernetes는 Kubernetes 클러스터의 수명 주기 동안 Kubernetes 노드에 할당된 IP 주소가 일정해야 하기 때문입니다.

AKS Arc 클러스터 만들기 작업에 논리 네트워크를 사용하려면 다음 매개 변수가 필요합니다.

논리 네트워크 매개 변수 Description AKS Arc 클러스터에 필요한 매개 변수
--address-prefixes 네트워크의 AddressPrefix입니다. 현재 1개 주소 접두사만 지원됩니다. 사용량: --address-prefixes "10.220.32.16/24". 지원됨
--dns-servers DNS 서버 IP 주소의 공백으로 구분된 목록입니다. 사용량: --dns-servers 10.220.32.16 10.220.32.17. 지원됨
--gateway 게이트웨이 게이트웨이 IP 주소는 주소 접두사 scope 내에 있어야 합니다. 사용량: --gateway 10.220.32.16. 지원됨
--ip-allocation-method IP 주소 할당 방법입니다. 지원되는 값은 "Static"입니다. 사용량: --ip-allocation-method "Static". 지원됨
--ip-pool-start IP 풀의 시작 IP 주소입니다. 주소는 주소 접두사 범위에 있어야 합니다. 사용량: --ip-pool-start "10.220.32.18". 지원됨
--ip-pool-end IP 풀의 끝 IP 주소입니다. 주소는 주소 접두사 범위에 있어야 합니다. 사용량: --ip-pool-end "10.220.32.38". 지원됨
--vm-switch-name VM 스위치의 이름입니다. 사용량: --vm-switch-name "vm-switch-01". 지원됨

컨트롤 플레인 IP

Kubernetes는 컨트롤 플레인을 사용하여 Kubernetes 클러스터의 모든 구성 요소가 원하는 상태로 유지되도록 합니다. 또한 컨트롤 플레인은 컨테이너화된 애플리케이션을 보유하는 작업자 노드를 관리하고 유지 관리합니다. Arc에서 사용하도록 설정된 AKS는 KubeVIP 부하 분산 장치를 배포하여 Kubernetes 컨트롤 플레인의 API 서버 IP 주소를 항상 사용할 수 있도록 합니다. 이 KubeVIP instance 올바르게 작동하려면 변경할 수 없는 단일 "컨트롤 플레인 IP 주소"가 필요합니다.

참고

컨트롤 플레인 IP는 Kubernetes 클러스터를 만드는 데 필요한 매개 변수입니다. Kubernetes 클러스터의 컨트롤 플레인 IP 주소가 Arc VM 논리 네트워크, 인프라 네트워크 IP, 부하 분산 장치 등을 비롯한 다른 항목과 겹치지 않도록 해야 합니다. 컨트롤 플레인 IP도 논리 네트워크의 주소 접두사 scope 내에 있어야 하지만 IP 풀 외부에 있어야 합니다. 이는 IP 풀이 VM에만 사용되므로 컨트롤 플레인의 IP 풀에서 IP 주소를 선택하면 IP 주소 충돌이 발생할 수 있습니다. IP 주소가 겹치면 AKS 클러스터와 IP 주소가 사용되는 다른 모든 위치에 대해 예기치 않은 오류가 발생할 수 있습니다. 환경에서 Kubernetes 클러스터당 하나의 IP 주소를 예약하도록 계획해야 합니다.

컨테이너화된 애플리케이션에 대한 부하 분산 장치 IP

부하 분산 장치의 기본 목적은 Kubernetes 클러스터의 여러 노드에 트래픽을 분산하는 것입니다. 이 부하 분산은 가동 중지 시간을 방지하고 애플리케이션의 전반적인 성능을 향상시키는 데 도움이 될 수 있습니다. AKS는 Kubernetes 클러스터에 대한 부하 분산 장치를 배포하는 다음 옵션을 지원합니다.

MetalLB Arc 확장을 선택하든, 사용자 고유의 부하 분산 장치를 가져오든 간에 부하 분산 장치 서비스에 IP 주소 집합을 제공해야 합니다. 다음과 같은 옵션이 있습니다.

  • AKS Arc VM과 동일한 서브넷에서 서비스에 대한 IP 주소를 제공합니다.
  • 애플리케이션에 외부 부하 분산이 필요한 경우 다른 네트워크 및 IP 주소 목록을 사용합니다.

선택한 옵션에 관계없이 부하 분산 장치에 할당된 IP 주소가 논리 네트워크의 IP 주소 또는 Kubernetes 클러스터의 컨트롤 플레인 IP와 충돌하지 않도록 해야 합니다. IP 주소가 충돌하면 AKS 배포 및 애플리케이션에서 예기치 않은 오류가 발생할 수 있습니다.

Kubernetes 클러스터 및 애플리케이션에 대한 간단한 IP 주소 계획

다음 시나리오 연습에서는 Kubernetes 클러스터 및 서비스에 대한 단일 네트워크의 IP 주소를 예약합니다. IP 주소 할당에 대한 가장 간단하고 간단한 시나리오입니다.

IP 주소 요구 사항 최소 IP 주소 수 이 예약 방법 및 위치
AKS Arc VM IP Kubernetes 클러스터의 모든 작업자 노드에 대해 하나의 IP 주소를 예약합니다. 예를 들어 각 노드 풀에 노드가 3개 있는 3개의 노드 풀을 만들려면 IP 풀에 9개의 IP 주소가 있어야 합니다. Arc VM 논리 네트워크의 IP 풀을 통해 AKS Arc VM에 대한 IP 주소를 예약합니다.
AKS Arc K8s 버전 업그레이드 IP AKS Arc는 롤링 업그레이드를 수행하므로 Kubernetes 버전 업그레이드 작업을 위해 모든 AKS Arc 클러스터에 대해 하나의 IP 주소를 예약합니다. Arc VM 논리 네트워크의 IP 풀을 통해 K8s 버전 업그레이드 작업에 대한 IP 주소를 예약합니다.
컨트롤 플레인 IP 환경의 모든 Kubernetes 클러스터에 대해 하나의 IP 주소를 예약합니다. 예를 들어 총 5개의 클러스터를 만들려면 각 Kubernetes 클러스터에 대해 하나씩 5개의 IP 주소를 예약합니다. Arc VM 논리 네트워크와 동일한 서브넷에 있지만 지정된 IP 풀 외부에 있는 컨트롤 플레인 IP에 대한 IP 주소를 예약합니다.
부하 분산 장치 IP 예약된 IP 주소 수는 애플리케이션 배포 모델에 따라 달라집니다. 시작점으로 모든 Kubernetes 서비스에 대해 하나의 IP 주소를 예약할 수 있습니다. Arc VM 논리 네트워크와 동일한 서브넷에 있지만 지정된 IP 풀 외부에 있는 컨트롤 플레인 IP에 대한 IP 주소를 예약합니다.

Kubernetes 클러스터 및 애플리케이션에 대한 IP 주소 예약에 대한 예제 연습

Jane은 Azure Arc에서 사용하도록 설정된 AKS부터 시작하는 IT 관리자입니다. Azure Stack HCI 클러스터에 Kubernetes 클러스터 A 및 Kubernetes 클러스터 B라는 두 개의 Kubernetes 클러스터를 배포하려고 합니다. 또한 클러스터 A를 기반으로 투표 애플리케이션을 실행하려고 합니다. 이 애플리케이션에는 두 클러스터에서 실행되는 프런트 엔드 UI의 인스턴스 3개와 백 엔드 데이터베이스의 instance 1개가 있습니다. 그녀의 모든 AKS 클러스터 및 서비스는 단일 서브넷을 사용하여 단일 네트워크에서 실행됩니다.

  • Kubernetes 클러스터 A에는 컨트롤 플레인 노드 3개와 작업자 노드 5개가 있습니다.
  • Kubernetes 클러스터 B에는 컨트롤 플레인 노드 1개와 작업자 노드 3개가 있습니다.
  • 프런트 엔드 UI의 인스턴스 3개(포트 443).
  • 백 엔드 데이터베이스의 1 instance(포트 80).

이전 표에 따라 서브넷에 총 19개의 IP 주소를 예약해야 합니다.

  • 클러스터 A의 AKS Arc 노드 VM에 대한 8개의 IP 주소(K8s 노드 VM당 하나의 IP).
  • 클러스터 B의 AKS Arc 노드 VM에 대한 4개의 IP 주소(K8s 노드 VM당 하나의 IP).
  • AKS Arc 업그레이드 작업을 실행하기 위한 2개의 IP 주소(AKS Arc 클러스터당 하나의 IP 주소).
  • AKS Arc 컨트롤 플레인의 IP 주소 2개(AKS Arc 클러스터당 하나의 IP 주소)
  • 모두 동일한 포트를 사용하므로 Kubernetes 서비스의 IP 주소 3개(프런트 엔드 UI의 instance당 하나의 IP 주소입니다. 백 엔드 데이터베이스는 다른 포트를 사용하는 한 세 개의 IP 주소 중 하나를 사용할 수 있습니다.

이 예제를 계속 진행하면서 다음 표에 추가하면 다음을 얻을 수 있습니다.

매개 변수 IP 주소 수 이 예약 방법 및 위치
AKS Arc VM 및 K8s 버전 업그레이드 IP 주소 14개 예약 Azure Stack HCI 논리 네트워크의 IP 풀을 통해 이 예약을 수행합니다.
컨트롤 플레인 IP AKS Arc 클러스터용 IP 주소 2개 예약 매개 변수를 controlPlaneIP 사용하여 컨트롤 플레인 IP에 대한 IP 주소를 전달합니다. 이 IP가 Arc 논리 네트워크와 동일한 서브넷에 있지만 Arc 논리 네트워크에 정의된 IP 풀 외부에 있는지 확인합니다.
부하 분산 장치 IP Jane의 투표 애플리케이션에 대한 Kubernetes 서비스의 3개 IP 주소입니다. 이러한 IP 주소는 클러스터 A에 부하 분산 장치를 설치할 때 사용됩니다. MetalLB Arc 확장을 사용하거나 자체 타사 부하 분산 장치를 가져올 수 있습니다. 이 IP가 Arc 논리 네트워크와 동일한 서브넷에 있지만 Arc VM 논리 네트워크에 정의된 IP 풀 외부에 있는지 확인합니다.

프록시 설정

AKS의 프록시 설정은 기본 인프라 시스템에서 상속됩니다. Kubernetes 클러스터에 대한 개별 프록시 설정을 설정하고 프록시 설정을 변경하는 기능은 아직 지원되지 않습니다.

VLAN 간 요구 사항을 & 네트워크 포트

Azure Stack HCI를 배포할 때 관리 네트워크의 서브넷에 6개 이상의 고정 IP 주소의 연속 블록을 할당하여 물리적 서버에서 이미 사용하는 주소를 생략합니다. 이러한 IP는 Arc VM 관리 및 AKS Arc용 Azure Stack HCI 및 내부 인프라(Arc Resource Bridge)에서 사용됩니다. Arc Resource Bridge 관련 Azure Stack HCI 서비스에 IP 주소를 제공하는 관리 네트워크가 AKS 클러스터를 만드는 데 사용한 논리 네트워크와 다른 VLAN에 있는 경우 AKS 클러스터를 성공적으로 만들고 작동하기 위해 다음 포트가 열려 있는지 확인해야 합니다.

대상 포트 대상 원본 Description VLAN 간 네트워킹 정보
22 AKS Arc VM에 사용되는 논리 네트워크 관리 네트워크의 IP 주소 문제 해결을 위해 로그를 수집하는 데 필요합니다. 별도의 VLAN을 사용하는 경우 Azure Stack HCI 및 Arc Resource Bridge에 사용되는 관리 네트워크의 IP 주소는 이 포트의 AKS Arc 클러스터 VM에 액세스해야 합니다.
6443 AKS Arc VM에 사용되는 논리 네트워크 관리 네트워크의 IP 주소 Kubernetes API와 통신하는 데 필요합니다. 별도의 VLAN을 사용하는 경우 Azure Stack HCI 및 Arc Resource Bridge에 사용되는 관리 네트워크의 IP 주소는 이 포트의 AKS Arc 클러스터 VM에 액세스해야 합니다.
55000 관리 네트워크의 IP 주소 AKS Arc VM에 사용되는 논리 네트워크 클라우드 에이전트 gRPC 서버 별도의 VLAN을 사용하는 경우 AKS Arc VM은 이 포트의 클라우드 에이전트 IP 및 클러스터 IP에 사용되는 관리 네트워크의 IP 주소에 액세스해야 합니다.
65000 관리 네트워크의 IP 주소 AKS Arc VM에 사용되는 논리 네트워크 클라우드 에이전트 gRPC 인증 별도의 VLAN을 사용하는 경우 AKS Arc VM은 이 포트의 클라우드 에이전트 IP 및 클러스터 IP에 사용되는 관리 네트워크의 IP 주소에 액세스해야 합니다.

방화벽 URL 예외

Azure Arc 방화벽/프록시 URL 허용 목록에 대한 자세한 내용은 Azure Arc 리소스 브리지 네트워크 요구 사항Azure Stack HCI 23H2 네트워크 요구 사항을 참조하세요.

Kubernetes 클러스터의 배포 및 작업의 경우 배포의 모든 물리적 노드 및 AKS Arc VM에서 다음 URL에 연결할 수 있어야 합니다. 방화벽 구성에서 다음 URL이 허용되는지 확인합니다.

URL 포트 서비스 참고
https://mcr.microsoft.com 443 Microsoft 컨테이너 레지스트리 컨테이너 이미지와 같은 공식 Microsoft 아티팩트에서 사용됩니다.
https://*.his.arc.azure.com 443 Azure Arc ID 서비스 ID 및 액세스 제어에 사용됩니다.
https://*.dp.kubernetesconfiguration.azure.com 443 Kubernetes Azure Arc 구성에 사용됩니다.
https://*.servicebus.windows.net 443 클러스터 연결 방화벽에서 인바운드 포트를 사용하도록 설정하지 않고도 Azure Arc 지원 Kubernetes 클러스터에 안전하게 연결하는 데 사용됩니다.
https://guestnotificationservice.azure.com 443 알림 서비스 게스트 알림 작업에 사용됩니다.
https://*.dp.prod.appliances.azure.com 443 데이터 평면 서비스 리소스 브리지(어플라이언스)에 대한 데이터 평면 작업에 사용됩니다.
*.data.mcr.microsoft.com
azurearcfork8s.azurecr.io
linuxgeneva-microsoft.azurecr.io
pipelineagent.azurecr.io
ecpacr.azurecr.io
443 에이전트 다운로드 이미지 및 에이전트를 다운로드하는 데 사용됩니다.
*.prod.microsoftmetrics.com
*.prod.hot.ingestion.msftcloudes.com
dc.services.visualstudio.com
*.prod.warm.ingest.monitor.core.windows.net
gcs.prod.monitoring.core.windows.net
443 메트릭 및 상태 모니터링 메트릭 및 원격 분석 트래픽 모니터링에 사용됩니다.
*.blob.core.windows.net
*.dl.delivery.mp.microsoft.com
*.do.dsp.mp.microsoft.com
443 TCP 리소스 브리지(어플라이언스) 이미지를 다운로드하는 데 사용됩니다.
https://azurearcfork8sdev.azurecr.io 443 Kubernetes Kubernetes용 Azure Arc 컨테이너 이미지를 다운로드하는 데 사용됩니다.
https://adhs.events.data.microsoft.com 443 원격 분석 ADHS는 어플라이언스/mariner OS 내에서 실행되는 원격 분석 서비스입니다. 컨트롤 플레인 노드에서 필요한 진단 데이터를 Microsoft로 보내는 데 주기적으로 사용됩니다. 원격 분석이 mariner에서 나올 때 사용됩니다. 즉, Kubernetes 컨트롤 플레인을 의미합니다.
https://v20.events.data.microsoft.com 443 원격 분석 Windows Server 호스트에서 Microsoft로 필요한 진단 데이터를 보내는 데 주기적으로 사용됩니다.
gcr.io 443 Google 컨테이너 레지스트리 컨테이너 기본 이미지와 같은 Kubernetes 공식 아티팩트에서 사용됩니다.
pypi.org 443 Python 패키지 Kubernetes 및 Python 버전의 유효성을 검사합니다.
*.pypi.org 443 Python 패키지 Kubernetes 및 Python 버전의 유효성을 검사합니다.
https://hybridaks.azurecr.io 443 컨테이너 이미지 HybridAKS 연산자 이미지에 액세스하는 데 필요합니다.
aka.ms 443 az extensions aksarcconnectedk8s와 같은 Azure CLI 확장을 다운로드하는 데 필요합니다.
*.login.microsoft.com 443 Azure Azure Resource Manager 토큰을 가져오고 업데이트하는 데 필요합니다.
sts.windows.net 443 Azure Arc 클러스터 연결 및 사용자 지정 위치 기반 시나리오의 경우.
hybridaksstorage.z13.web.core.windows.net 443 Azure Stack HCI Azure Storage에서 호스트되는 AKSHCI 정적 웹 사이트입니다.
raw.githubusercontent.com 443 GitHub GitHub에 사용됩니다.
www.microsoft.com 80 Microsoft 공식 웹 사이트. Microsoft 공식 웹 사이트.
*.prod.do.dsp.mp.microsoft.com 443 Microsoft Update 리소스 브리지(어플라이언스) 이미지 다운로드.
files.pythonhosted.org 443 Python 패키지 Python 패키지.

다음 단계

Azure Stack HCI 23H2의 Kubernetes 클러스터에 대한 논리 네트워크 Create