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 주소가 일정해야 하기 때문입니다. 소프트웨어 정의 가상 네트워크 및 SDN 관련 기능은 현재 Azure Stack HCI 23H2의 AKS에서 지원되지 않습니다.
AKS Arc 클러스터 만들기 작업에 논리 네트워크를 사용하려면 다음 매개 변수가 필요합니다.
논리 네트워크 매개 변수 | 설명 | 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 주소는 주소 접두사 범위 내에 있어야 합니다. 사용법: --gateway 10.220.32.16 . |
|
--ip-allocation-method |
IP 주소 할당 방법입니다. 지원되는 값은 "정적"입니다. 사용법: --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 인스턴스가 제대로 작동하려면 변경할 수 없는 단일 "컨트롤 플레인 IP 주소"가 필요합니다.
참고 항목
컨트롤 플레인 IP는 Kubernetes 클러스터를 만드는 데 필요한 매개 변수입니다. Kubernetes 클러스터의 컨트롤 플레인 IP 주소가 Arc VM 논리 네트워크, 인프라 네트워크 IP, 부하 분산 장치 등을 비롯한 다른 항목과 겹치지 않도록 해야 합니다. 또한 컨트롤 플레인 IP는 논리 네트워크의 주소 접두사 범위 내에 있어야 하지만 IP 풀 외부에 있어야 합니다. 이는 IP 풀이 VM에만 사용되고 컨트롤 플레인의 IP 풀에서 IP 주소를 선택하면 IP 주소 충돌이 발생할 수 있기 때문입니다. IP 주소가 겹치면 AKS 클러스터와 IP 주소가 사용되는 다른 위치에 대해 예기치 않은 오류가 발생할 수 있습니다. 사용자 환경에서 Kubernetes 클러스터당 하나의 IP 주소를 예약하도록 계획해야 합니다.
컨테이너화된 애플리케이션에 대한 부하 분산 장치 IP
부하 분산 장치의 주요 목적은 Kubernetes 클러스터의 여러 노드에 트래픽을 분산하는 것입니다. 이 부하 분산은 가동 중지 시간을 방지하고 애플리케이션의 전반적인 성능을 향상시키는 데 도움이 될 수 있습니다. AKS는 Kubernetes 클러스터에 대한 부하 분산 장치를 배포하는 다음 옵션을 지원합니다.
- Azure Arc 확장을 사용하여 MetalLB 부하 분산 장치를 배포합니다.
- 사용자 고유의 타사 부하 분산 장치를 가져옵니다.
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개와 백 엔드 데이터베이스의 인스턴스 1개가 있습니다. 그녀의 모든 AKS 클러스터 및 서비스는 단일 서브넷을 사용하여 단일 네트워크에서 실행됩니다.
- Kubernetes 클러스터 A에는 3개의 컨트롤 플레인 노드와 5개의 작업자 노드가 있습니다.
- Kubernetes 클러스터 B에는 1개의 컨트롤 플레인 노드와 3개의 작업자 노드가 있습니다.
- 프런트 엔드 UI의 인스턴스 3개(포트 443).
- 백 엔드 데이터베이스의 인스턴스 1개(포트 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 인스턴스당 하나의 IP 주소, 모두 동일한 포트를 사용하므로) 백 엔드 데이터베이스는 다른 포트를 사용하는 한 세 IP 주소 중 하나를 사용할 수 있습니다.)
이 예제를 계속 진행하여 다음 표에 추가하면 다음을 확인할 수 있습니다.
매개 변수 | IP 주소 수 | 이 예약 방법 및 위치 |
---|---|---|
AKS Arc VM 및 K8s 버전 업그레이드 | IP 주소 14개 예약 | Azure Stack HCI 논리 네트워크의 IP 풀을 통해 이 예약을 수행합니다. |
컨트롤 플레인 IP | AKS Arc 클러스터용 IP 주소 1개, IP 주소 2개 예약 | 매개 변수를 controlPlaneIP 사용하여 컨트롤 플레인 IP의 IP 주소를 전달합니다. 이 IP가 Arc 논리 네트워크와 동일한 서브넷에 있지만 Arc 논리 네트워크에 정의된 IP 풀 외부에 있는지 확인합니다. |
부하 분산 장치 IP | Jane의 투표 애플리케이션에 대한 Kubernetes 서비스의 IP 주소 3개. | 이러한 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 클러스터를 성공적으로 만들고 작동하기 위해 다음 포트가 열려 있는지 확인해야 합니다.
대상 포트 | 대상 | Source | 설명 | 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 네트워크 요구 사항을 참조하세요.
참고 항목
이전 Azure Stack HCI 릴리스(예: 2402 이하)를 배포하는 경우 gcr.io 및 storage.googleapis.com URL도 허용해야 합니다. 이러한 URL은 최신 AKS Arc 릴리스에서 제거되었습니다.
URL | 포트 | 서비스 | 주의 |
---|---|---|---|
https://mcr.microsoft.com *.data.mcr.microsoft.com azurearcfork8s.azurecr.io linuxgeneva-microsoft.azurecr.io pipelineagent.azurecr.io ecpacr.azurecr.io https://azurearcfork8sdev.azurecr.io https://hybridaks.azurecr.io aszk8snetworking.azurecr.io |
443 | AKS Arc | 컨테이너 이미지와 같은 공식 Microsoft 아티팩트용으로 사용됩니다. |
docker.io |
443 | AKS Arc | 컨테이너 기본 이미지와 같은 Kubernetes 공식 아티팩트에서 사용됩니다. |
hybridaksstorage.z13.web.core.windows.net |
443 | AKS Arc | Azure Storage에서 호스트되는 AKSHCI 정적 웹 사이트입니다. |
*.blob.core.windows.net *.dl.delivery.mp.microsoft.com *.do.dsp.mp.microsoft.com |
443 | AKS Arc | AKS Arc VHD 이미지 다운로드 및 업데이트에 사용됩니다. |
*.prod.do.dsp.mp.microsoft.com |
443 | AKS Arc | AKS Arc VHD 이미지 다운로드 및 업데이트에 사용됩니다. |
*.login.microsoft.com |
443 | Azure | Azure에 로그인하기 위해 Azure Resource Manager 토큰을 가져오고 업데이트하는 데 필요합니다. |
https://*.his.arc.azure.com |
443 | Azure Arc 지원 K8s | Arc 에이전트 ID 및 액세스 제어에 사용됩니다. |
https://*.dp.kubernetesconfiguration.azure.com |
443 | Azure Arc 지원 K8s | Azure Arc 구성에 사용됩니다. |
https://*.servicebus.windows.net |
443 | Azure Arc 지원 K8s | 방화벽에서 인바운드 포트를 사용하도록 설정하지 않고도 Azure Arc 지원 Kubernetes 클러스터에 안전하게 연결하는 데 사용됩니다. |
https://guestnotificationservice.azure.com |
443 | Azure Arc 지원 K8s | 게스트 알림 작업에 사용됩니다. |
sts.windows.net |
443 | Azure Arc 지원 K8s | 클러스터 연결 및 사용자 지정 위치 기반 시나리오의 경우 |
https://*.dp.prod.appliances.azure.com |
443 | Arc 리소스 브리지 | 리소스 브리지(어플라이언스)에 대한 데이터 평면 작업에 사용됩니다. |
*.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 https://adhs.events.data.microsoft.com https://v20.events.data.microsoft.com |
443 | 메트릭 및 상태 모니터링 | 메트릭 및 원격 분석 트래픽 모니터링에 사용됩니다. |
pypi.org *.pypi.org files.pythonhosted.org |
443 | Az CLI | Az CLI 및 Az CLI 확장을 다운로드하는 데 사용됩니다. |
aka.ms |
443 | Azure Stack HCI | Azure Stack HCI 관련 다운로드에 필요합니다. |
raw.githubusercontent.com |
443 | GitHub | GitHub에 사용됩니다. |
www.microsoft.com |
80 | Microsoft 공식 웹 사이트. | Microsoft 공식 웹 사이트. |