AKS(Azure Kubernetes Service) IPAM 모드 및 데이터 평면 기술 업그레이드
AKS(Azure Kubernetes Service)를 지원하는 새로운 IPAM(IP 할당 관리) 모드 및 데이터 평면 기술이 항상 있으므로 기존 AKS 클러스터를 최신 IPAM 모드 및 데이터 평면 기술로 업그레이드하여 최신 기능 및 지원 가능성에 액세스해야 하는 상황을 피할 수 없습니다. 이 문서에서는 IPAM 모드에 Azure CNI 오버레이를 사용하도록 기존 AKS 클러스터를 업그레이드하고 Cilium에서 제공하는 Azure CNI를 데이터 평면으로 업그레이드하는 방법에 대한 지침을 제공합니다.
기존 클러스터를 Azure CNI 오버레이로 업그레이드
참고 항목
클러스터가 다음 기준을 충족하는 경우 기존 Azure CNI 클러스터를 오버레이로 업데이트할 수 있습니다.
- 클러스터는 Kubernetes 버전 1.22 이상에 있습니다.
- 동적 Pod IP 할당 기능을 사용하지 않습니다.
- 네트워크 정책이 사용하도록 설정되어 있지 않습니다. 업그레이드 전에 네트워크 정책 엔진을 제거할 수 있습니다. Azure 네트워크 정책 관리자 또는 Calico 제거를 참조하세요.
- Docker를 컨테이너 런타임으로 사용하는 Windows 노드 풀을 사용하지 않습니다.
참고 항목
기존 클러스터를 CNI 오버레이로 업그레이드하는 것은 되돌릴 수 없는 프로세스입니다.
Warning
Windows OS 빌드 20348.1668 이전에는 Windows 오버레이 Pod가 호스트 네트워크 Pod에서 패킷을 잘못 SNATing하는 것과 관련된 제한 사항이 있었으며, 이는 오버레이로 업그레이드하는 클러스터에 더 나쁜 영향을 미칩니다. 이 문제를 방지하려면 20348.1668 이상의 Windows OS 빌드를 사용합니다.
Warning
사용자 지정 azure-ip-masq-agent 구성을 사용하여 Pod에서 SNAT 패킷을 보내서는 안 되는 추가 IP 범위를 포함하는 경우 Azure CNI 오버레이로 업그레이드하면 해당 범위에 대한 연결이 끊어질 수 있습니다. 오버레이 공간의 Pod IP는 클러스터 노드 외부의 어떤 것에서도 연결할 수 없습니다.
또한 충분히 오래된 클러스터의 경우 이전 버전의 azure-ip-masq-agent에 남아 있는 ConfigMap이 있을 수 있습니다. 명명된 azure-ip-masq-agent-config
이 ConfigMap이 존재하며 의도적으로 현재 위치에 있지 않은 경우 업데이트 명령을 실행하기 전에 삭제해야 합니다.
사용자 지정 ip-masq-agent 구성을 사용하지 않는 경우 Azure ip-masq-agent ConfigMap과 관련하여 azure-ip-masq-agent-config-reconciled
ConfigMap만 존재해야 하며 이는 업그레이드 프로세스 중에 자동으로 업데이트됩니다.
업그레이드 프로세스는 각 노드 풀을 동시에 이미지로 다시 생성하도록 트리거합니다. 각 노드 풀을 개별적으로 오버레이로 업그레이드하는 것은 지원되지 않습니다. 클러스터 네트워킹 중단은 노드 풀의 각 노드가 다시 이미지화되는 노드 이미지 업그레이드 또는 Kubernetes 버전 업그레이드와 유사합니다.
Azure CNI 클러스터 업그레이드
[az aks update
][az-aks-update] 명령을 사용하여 Overlay를 사용하도록 기존 Azure CNI 클러스터를 업데이트합니다.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16
Pod는 레거시 노드 서브넷과 겹치지 않는 새 오버레이 공간에서 IP를 가져와야 하기 때문에 레거시 CNI에서 업그레이드할 때 --pod-cidr
매개 변수가 필요합니다. 또한 Pod CIDR은 노드 풀의 VNet 주소와 겹칠 수 없습니다. 예를 들어, VNet 주소가 10.0.0.0/8이고 노드가 서브넷 10.240.0.0/16에 있는 경우 --pod-cidr
은 10.0.0.0/8 또는 클러스터의 기존 서비스 CIDR과 겹칠 수 없습니다.
Kubenet 클러스터 업그레이드
[az aks update
][az-aks-update] 명령을 사용하여 Azure CNI 오버레이를 사용하도록 기존 Kubenet 클러스터를 업데이트합니다.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay
클러스터는 이미 VNet IP 공간과 겹치지 않는 Pod용 프라이빗 CIDR을 사용하고 있으므로 --pod-cidr
매개 변수를 지정할 필요가 없으며 매개 변수가 사용되지 않으면 Pod CIDR은 동일하게 유지됩니다.
참고 항목
Kubenet에서 CNI Overlay로 업그레이드하면 Pod 라우팅에 경로 테이블이 더 이상 필요하지 않습니다. 클러스터가 고객 제공 경로 테이블을 사용하는 경우 Pod 트래픽을 올바른 노드로 전달하는 데 사용되었던 경로는 마이그레이션 작업 중에 자동으로 삭제됩니다. 클러스터가 관리 경로 테이블을 사용하는 경우(경로 테이블은 AKS에서 만들어졌으며 노드 리소스 그룹에 있음) 마이그레이션 중에 해당 경로 테이블이 삭제됩니다.
기존 클러스터를 Cilium 기반 Azure CNI로 업그레이드
참고 항목
클러스터가 다음 기준을 충족하는 경우 기존 클러스터를 Cilium 기반 Azure CNI로 업데이트할 수 있습니다.
- 클러스터는 Azure CNI 오버레이 또는 동적 IP 할당이 포함된 Azure CNI를 사용합니다. 여기에는 Azure CNI가 포함되지 않습니다.
- 클러스터에 Windows 노드 풀이 없습니다.
참고 항목
다른 네트워크 정책 엔진(Azure NPM 또는 Calico)을 사용하는 클러스터에서 Cilium을 사용하도록 설정하면 네트워크 정책 엔진이 제거되고 Cilium으로 바뀝니다. 자세한 내용은 Azure Network Policy Manager 또는 Calico 제거를 참조하세요.
Warning
업그레이드 프로세스는 각 노드 풀을 동시에 이미지로 다시 생성하도록 트리거합니다. 각 노드 풀을 개별적으로 업그레이드하는 것은 지원되지 않습니다. 클러스터 네트워킹 중단은 노드 풀의 각 노드가 다시 이미지화되는 노드 이미지 업그레이드 또는 Kubernetes 버전 업그레이드와 유사합니다. Cilium은 모든 노드의 이미지가 다시 생성된 후에만 네트워크 정책을 적용하기 시작합니다.
업그레이드를 수행하려면 Azure CLI 버전 2.52.0 이상이 필요합니다. az --version
을 실행하여 현재 설치된 버전을 확인합니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
다음 명령을 사용하여 기존 클러스터를 Cilium에서 제공하는 Azure CNI로 업그레이드합니다. <clusterName>
및 <resourceGroupName>
에 대한 값을 대체합니다.
az aks update --name <clusterName> --resource-group <resourceGroupName> \
--network-dataplane cilium
Azure Kubernetes Service