Microsoft Azure Kubernetes Service
Microsoft Azure Kubernetes Service (AKS)
AKS 관리형 Kubernetes 서비스에서 Calico를 활성화하는 방법을 안내해요. Azure CNI를 그대로 두고 Calico 네트워크 정책만 더하는 방법부터 Calico CNI로 네트워킹 전체를 대신하는 방법까지 세 가지 옵션을 비교해요. 각 옵션마다 설치 절차와 명령어를 단계별로 소개해요.
출처: 문서
본문
AKS 관리형 Kubernetes 서비스에서 Calico를 활성화해요.
Calico와 AKS 함께 사용하기
Azure Kubernetes Service(AKS)는 Calico를 사용하는 네트워킹과 네트워크 정책에 대해 여러 구성을 지원해요. 어떤 것을 선택하느냐에 따라 네트워킹 구현 방식, Calico를 누가 관리하는지, 사용할 수 있는 기능이 달라져요.
옵션 1: Azure 관리형 Calico (내장)
이 옵션에서는 AKS가 네트워킹에 Azure CNI 플러그인을 사용하고, 네트워크 정책에는 Azure 관리형 Calico 구현을 사용해요.
- 네트워킹: Azure CNI가 제공
- 네트워크 정책: Azure 관리형 Calico가 구현
- 관리: Calico 컴포넌트의 설치, 업그레이드, 지원을 Azure가 담당
- 기능: 전체 Kubernetes Network Policy API (표준 기능만)
옵션 2: 네트워크 정책용 셀프 관리형 Calico
이 구성에서는 클러스터가 여전히 네트워킹에는 Azure CNI를 사용하지만, 고급 정책과 관측 가능성 기능을 사용할 수 있도록 Calico를 직접 설치하고 관리해요.
-
네트워킹: Azure CNI가 제공
-
네트워크 정책: 셀프 관리형 Calico가 구현
-
관리: Calico의 설치, 구성, 업그레이드를 여러분이 담당
-
지원:
- 클러스터는 Azure가 지원
- Calico 기능은 커뮤니티 또는 상업적 지원 플랜이 지원
-
기능:
- 고급 Calico 정책과 글로벌 네트워크 정책
- Whisker 관측 가능성 등 엔터프라이즈급 기능
이 방식은 Azure의 관리형 네트워킹 인프라 혜택을 그대로 누리면서, 더 많은 제어권과 고급 Calico 정책 기능을 사용할 수 있게 해줘요.
옵션 3: 네트워킹과 네트워크 정책 모두에 셀프 관리형 Calico
Calico CNI를 AKS의 기본 네트워킹 플러그인으로 사용해 Azure CNI를 완전히 대체할 수도 있어요. 이 구성은 Calico 네트워킹과 정책 기능 전체를 제공해요.
-
네트워킹: Calico CNI가 제공
-
네트워크 정책: Calico가 구현
-
관리: Calico의 설치, 구성, 업그레이드를 여러분이 담당
-
지원:
- 클러스터는 Azure가 지원
- Calico 기능은 커뮤니티 또는 상업적 지원 플랜이 지원
-
기능:
- 전체 Calico 네트워킹 스택
- 고급 정책, 글로벌 정책, 관측 가능성 도구
이 옵션은 최대한의 유연성과 기능을 제공하지만, Calico를 직접 관리해야 해요.
선행 조건
- 리소스 그룹과 AKS 클러스터를 만들 수 있는 권한이 있는 Azure 계정이 있어야 해요.
- az 명령줄 도구를 설치하고 구성했어야 해요.
네트워킹에 Azure CNI, 네트워크 정책에 Azure 관리형 Calico를 사용해 AKS 설치
여러분이 얻게 되는 것의 세부 구성은 다음과 같아요.
| 정책 | IPAM | CNI | 오버레이 | 라우팅 | 데이터스토어 |
|---|---|---|---|---|---|
| Calico | Azure | Azure | 아니요 | VPC Native | Kubernetes |
?
-
정책에 Azure 관리형 Calico를 사용하는 클러스터를 만들려면 다음 명령을 실행해요:
# Create a resource group az group create --name my-calico-rg --location westcentralus az aks create \ --resource-group my-calico-rg \ --name my-calico-cluster \ --location westcentralus \ --pod-cidr 192.168.0.0/16 \ --network-plugin azure \ --network-policy calico
네트워킹에 Azure CNI, 네트워크 정책에 셀프 관리형 Calico를 사용해 AKS 설치
여러분이 얻게 되는 것의 세부 구성은 다음과 같아요.
| 정책 | IPAM | CNI | 오버레이 | 라우팅 | 데이터스토어 |
|---|---|---|---|---|---|
| Calico | Azure | Azure | 아니요 | VPC Native | Kubernetes |
?
-
네트워킹에는 Azure CNI를 쓰고 네트워크 정책은 구성하지 않은 Azure AKS 클러스터를 만들어요:
# Create a resource group az group create --name my-calico-rg --location westcentralus az aks create \ --resource-group my-calico-rg \ --name my-calico-cluster \ --location westcentralus \ --pod-cidr 192.168.0.0/16 \ --network-plugin azure \ --network-policy none -
kubectl로 클러스터에 접근할 수 있게 자격 증명을 가져와요:az aks get-credentials --resource-group my-calico-rg --name my-calico-cluster클러스터 구성이 끝났으니 이제 Calico를 설치할 수 있어요.
-
Calico 커스텀 리소스 정의를 설치해요:
클러스터가 Kubernetes 1.36 이상 기반이라면:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/v3_projectcalico_org.yaml클러스터가 Kubernetes 1.34 또는 1.35 기반이라면:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/v3_projectcalico_org-v1beta1.yaml -
Tigera Operator를 설치해요.
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/tigera-operator.yaml -
Calico 구성을 제공해 설치를 완료해요
kubectl create -f - <<EOF kind: Installation apiVersion: operator.tigera.io/v1 metadata: name: default spec: kubernetesProvider: AKS cni: type: AzureVNET --- # This section configures the Calico API server. # For more information, see: https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.APIServer apiVersion: operator.tigera.io/v1 kind: APIServer metadata: name: default spec: {} --- # Configures the Calico Goldmane flow aggregator. apiVersion: operator.tigera.io/v1 kind: Goldmane metadata: name: default --- # Configures the Calico Whisker observability UI. apiVersion: operator.tigera.io/v1 kind: Whisker metadata: name: default EOF -
Calico가 정상 동작하는지 확인해요
kubectl get tigerastatus기대 출력
NAME AVAILABLE PROGRESSING DEGRADED SINCE apiserver True False False 100s calico True False False 50s goldmane True False False 55s ippools True False False 105s whisker True False False 80s모든 컴포넌트가
AVAILABLE을True로 보고하는지 확인해요.
네트워킹과 네트워크 정책 모두에 셀프 관리형 Calico를 사용해 AKS 설치
제한 사항
-
Windows 데이터플레인은 지원되지 않아요.
-
VPP 데이터플레인은 지원되지 않아요.
여러분이 얻게 되는 것의 세부 구성은 다음과 같아요.
| 정책 | IPAM | CNI | 오버레이 | 라우팅 | 데이터스토어 |
|---|---|---|---|---|---|
| Calico | Calico | Calico | VXLAN | Calico | Kubernetes |
?
-
Kubernetes CNI가 미리 설치되지 않은 Azure AKS 클러스터를 만들어요. 자세한 내용은 AKS에서 Bring your own CNI를 참고하세요.
# Create a resource group az group create --name my-calico-rg --location westcentralus az aks create \ --resource-group my-calico-rg \ --name my-calico-cluster \ --location westcentralus \ --pod-cidr 192.168.0.0/16 \ --network-plugin none -
kubectl로 클러스터에 접근할 수 있게 자격 증명을 가져와요:az aks get-credentials --resource-group my-calico-rg --name my-calico-cluster -
클러스터 구성이 끝났으니 이제 Calico를 설치할 수 있어요.
-
Calico 커스텀 리소스 정의를 설치해요.
클러스터가 Kubernetes 1.36 이상 기반이라면:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/v3_projectcalico_org.yaml클러스터가 Kubernetes 1.34 또는 1.35 기반이라면:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/v3_projectcalico_org-v1beta1.yaml -
Tigera Operator를 설치해요.
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/tigera-operator.yaml -
Calico 구성을 제공해 설치를 완료해요
kubectl create -f - <<EOF kind: Installation apiVersion: operator.tigera.io/v1 metadata: name: default spec: kubernetesProvider: AKS cni: type: Calico calicoNetwork: bgp: Disabled ipPools: - cidr: 192.168.0.0/16 encapsulation: VXLAN --- # This section configures the Calico API server. # For more information, see: https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.APIServer apiVersion: operator.tigera.io/v1 kind: APIServer metadata: name: default spec: {} --- # Configures the Calico Goldmane flow aggregator. apiVersion: operator.tigera.io/v1 kind: Goldmane metadata: name: default --- # Configures the Calico Whisker observability UI. apiVersion: operator.tigera.io/v1 kind: Whisker metadata: name: default EOF -
Calico가 정상 동작하는지 확인해요
kubectl get tigerastatus기대 출력
NAME AVAILABLE PROGRESSING DEGRADED SINCE apiserver True False False 100s calico True False False 50s goldmane True False False 55s ippools True False False 105s whisker True False False 80s모든 컴포넌트가
AVAILABLE을True로 보고하는지 확인해요.
다음 단계
추천
더 알아보기 (Learn more)
AKS에서는 Azure 관리형 Calico로 표준 네트워크 정책만 쓰는지, 셀프 관리형 Calico로 고급 정책과 관측 가능성까지 쓰는지 선택해요. 네트워킹까지 Calico CNI로 교체하는 옵션 3은 Windows와 VPP 데이터플레인을 지원하지 않으니 계획 전에 제한 사항을 꼭 확인하세요.