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 오버레이로 업그레이드하는 것은 되돌릴 수 없는 프로세스입니다.
경고
Windows OS 빌드 20348.1668 이전에는 호스트 네트워크 Pod에서 패킷을 잘못 SNATing하는 Windows Overlay Pod에 대한 제한 사항이 있었는데, 이는 오버레이로 업그레이드하는 클러스터에 더 해로운 영향을 미쳤습니다. 이 문제를 방지하려면 20348.1668 이상의 Windows OS 빌드를 사용합니다.
경고
사용자 지정 azure-ip-masq-agent 구성을 사용하여 Pod에서 SNAT 패킷을 포함하지 않아야 하는 추가 IP 범위를 포함하는 경우 Azure CNI 오버레이로 업그레이드하면 이러한 범위에 대한 연결이 끊어질 수 있습니다. 오버레이 공간의 Pod IP는 클러스터 내부의 노드가 아닌 외부의 어떤 것에서도 접근할 수 없습니다.
또한 충분히 오래된 클러스터의 경우 이전 버전의 azure-ip-masq-agent에 남아 있는 ConfigMap이 있을 수 있습니다. 명명된 ConfigMap azure-ip-masq-agent-config
이 존재하고 의도적으로 배치된 것이 아닌 경우, 업데이트 명령을 실행하기 전에 삭제해야 합니다.
사용자 지정 ip-masq-agent 구성을 사용하지 않는 경우, Azure ip-masq-agent ConfigMaps와 관련해서는 azure-ip-masq-agent-config-reconciled
ConfigMap만 존재해야 하며, 이는 업그레이드 프로세스 중에 자동으로 업데이트됩니다.
업그레이드 프로세스는 각 노드 풀을 동시에 이미지로 다시 설치하도록 트리거합니다. 각 노드 풀을 개별적으로 오버레이로 업그레이드하는 것은 지원되지 않습니다. 클러스터 네트워킹 중단은 노드 풀의 각 노드가 이미지로 다시 설치되는 노드 이미지 업그레이드 또는 Kubernetes 버전 업그레이드와 유사합니다.
Azure CNI 클러스터 업그레이드
명령을 사용하여 오버레이를 사용하도록 기존 Azure CNI 클러스터를 업데이트합니다 az aks update
.
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-cidr
매개 변수는 Pod가 기존 노드 서브넷과 겹치지 않는 새 오버레이 공간에서 IP를 가져와야 하므로 레거시 CNI에서 업그레이드할 때 필요합니다. 또한 Pod CIDR은 노드 풀의 VNet 주소와 겹칠 수 없습니다. 예를 들어, VNet 주소가 10.0.0.0/8이고 노드가 서브넷 10.240.0.0/16에 있는 경우 --pod-cidr
은 10.0.0.0/8 또는 클러스터의 기존 서비스 CIDR과 겹칠 수 없습니다.
Kubenet 클러스터 업그레이드
명령을 사용하여 Azure CNI 오버레이를 사용하도록 기존 Kubenet 클러스터를 업데이트합니다 az aks update
.
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 오버레이로 업그레이드할 때 경로 테이블은 더 이상 Pod 라우팅에 필요하지 않습니다. 클러스터가 고객이 제공한 경로 테이블을 사용하는 경우 마이그레이션 작업 중에 Pod 트래픽을 올바른 노드로 전송하는 데 사용된 경로가 자동으로 삭제됩니다. 클러스터가 관리 경로 테이블을 사용하는 경우(AKS는 노드 리소스 그룹에 있는 경로 테이블을 만듭니다) 마이그레이션의 일부로 해당 경로 테이블이 삭제됩니다.
노드 서브넷 클러스터 업그레이드
명령을 사용하여 Azure CNI 오버레이를 사용하도록 기존 노드 서브넷 클러스터를 업데이트합니다 az aks update
.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay
비고
노드 서브넷을 업그레이드할 때는 IPAM 네트워킹 모드 또는 데이터 평면만 업그레이드합니다. 단일 작업에서 둘 다 업그레이드하는 것은 지원되지 않습니다.
Cilium에서 제공하는 Azure CNI로 업그레이드
비고
클러스터가 다음 기준을 충족하는 경우 기존 클러스터를 Cilium 기반 Azure CNI로 업데이트할 수 있습니다.
- 클러스터에 Windows 노드 풀이 없습니다.
비고
다른 네트워크 정책 엔진(Azure NPM 또는 Calico)이 있는 클러스터에서 Cilium을 사용하도록 설정하면 네트워크 정책 엔진이 제거되고 Cilium으로 대체됩니다. 자세한 내용은 Azure 네트워크 정책 관리자 또는 Calico 제거를 참조하세요.
경고
업그레이드 프로세스는 각 노드 풀을 동시에 이미지로 다시 설치하도록 트리거합니다. 각 노드 풀을 개별적으로 업그레이드하는 것은 지원되지 않습니다. 클러스터 네트워킹 장애는 노드 풀의 각 노드가 이미지화되는 노드 이미지 업그레이드 또는 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