본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

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

?

  1. 정책에 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

?

  1. 네트워킹에는 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
    
  2. kubectl로 클러스터에 접근할 수 있게 자격 증명을 가져와요:

    az aks get-credentials --resource-group my-calico-rg --name my-calico-cluster
    

    클러스터 구성이 끝났으니 이제 Calico를 설치할 수 있어요.

  3. 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
    
  4. Tigera Operator를 설치해요.

    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/tigera-operator.yaml
    
  5. 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
    
  6. 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 설치

제한 사항

여러분이 얻게 되는 것의 세부 구성은 다음과 같아요.

정책 IPAM CNI 오버레이 라우팅 데이터스토어
Calico Calico Calico VXLAN Calico Kubernetes

?

  1. 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
    
  2. kubectl로 클러스터에 접근할 수 있게 자격 증명을 가져와요:

    az aks get-credentials --resource-group my-calico-rg --name my-calico-cluster
    
  3. 클러스터 구성이 끝났으니 이제 Calico를 설치할 수 있어요.

  4. 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
    
  5. Tigera Operator를 설치해요.

    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/tigera-operator.yaml
    
  6. 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
    
  7. 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 데이터플레인을 지원하지 않으니 계획 전에 제한 사항을 꼭 확인하세요.