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

Helm으로 설치하기

원문 보기 위키 갱신

Helm 3 차트를 사용하면 Calico 설치를 명령어 몇 줄로 끝낼 수 있어요. 이 문서는 Calico Helm 저장소를 추가하고, 필요하면 values.yaml로 구성을 커스터마이즈하고, Tigera Operator 기반 설치를 완료하는 과정을 안내해요. ArgoCD처럼 Helm을 활용하는 도구로 클러스터 애플리케이션을 관리하고 있다면 특히 잘 맞는 설치 방법이에요.

출처: 문서

본문

큰 그림

Helm 3를 사용해 Kubernetes 클러스터에 Calico를 설치해요.

가치

Helm 차트는 애플리케이션을 Kubernetes용으로 패키징하는 방법이에요(운영 체제의 apt나 yum과 비슷하죠). Helm은 ArgoCD 같은 도구가 클러스터에서 애플리케이션을 관리할 때도 사용돼요. 설치, 업그레이드(필요하면 롤백) 등을 알아서 처리해 주거든요.

시작하기 전에

필수 사항

  • Helm 3 설치

  • Kubernetes 클러스터가 다음 요구 사항을 충족해야 해요:

    • CNI 플러그인 없이 Kubernetes가 설치되어 있거나, 또는 클러스터가 policy-only 모드로 Calico가 실행될 수 있는 호환 CNI를 실행 중이어야 해요
    • x86-64, arm64, ppc64le, 또는 s390x 프로세서
    • RedHat Enterprise Linux 7.x+, CentOS 7.x+, Ubuntu 18.04+, 또는 Debian 9.x+
  • kubeconfig가 여러분 클러스터와 동작하도록 구성되어 있어야 해요 (kubectl get nodes로 확인)

  • Calico가 호스트의 cali와 tunl 인터페이스를 관리할 수 있어야 해요. 호스트에 NetworkManager가 있다면 NetworkManager 구성을 참고하세요.

개념

Operator 기반 설치

이 가이드에서는 Helm 3 차트로 Tigera Operator와 커스텀 리소스 정의를 설치해요. Tigera Operator는 커스텀 리소스 정의로 정의된 Kubernetes API를 통해 노출되는 Calico의 라이프사이클 관리를 담당해요.

방법

Helm 차트 내려받기

  1. Calico Helm 저장소를 추가해요:
helm repo add projectcalico https://docs.tigera.io/calico/charts

Helm 차트 커스터마이즈하기

EKS, GKE, AKS, Mirantis Kubernetes Engine(MKE)으로 설치된 클러스터에 설치하거나, TLS 인증서를 커스터마이즈해야 한다면 values.yaml 파일을 만들어 이 Helm 차트를 커스터마이즈해야 해요. 그렇지 않다면 이 단계는 건너뛰어도 돼요.

  1. EKS, GKE, AKS, Mirantis Kubernetes Engine(MKE)으로 설치된 클러스터에 설치한다면, Tigera Operator API 참조에 설명된 대로 kubernetesProvider를 설정해요. 예를 들면:

    echo '{ installation: {kubernetesProvider: EKS }}' > values.yaml
    

    Kubernetes CNI가 미리 설치되지 않은 Azure AKS 클러스터라면 다음 명령으로 values.yaml을 만들어요:

    cat > values.yaml <<EOF
    installation:
      kubernetesProvider: AKS
      cni:
        type: Calico
      calicoNetwork:
        bgp: Disabled
        ipPools:
        - cidr: 10.244.0.0/16
          encapsulation: VXLAN
    EOF
    

values.yaml로 구성할 수 있는 옵션에 대한 자세한 내용은 Helm 설치 참조를 참고하세요.

Calico 설치하기

  1. tigera-operator 네임스페이스를 만들어요.

    kubectl create namespace tigera-operator
    
  2. 필요한 커스텀 리소스 정의를 설치해요.

    클러스터가 Kubernetes 1.36 이상 기반이라면:

    helm template calico-crds projectcalico/projectcalico.org.v3 --version v3.33.0 --api-versions admissionregistration.k8s.io/v1/MutatingAdmissionPolicy | kubectl apply --server-side -f -
    

    클러스터가 Kubernetes 1.34 또는 1.35 기반이라면:

    helm template calico-crds projectcalico/projectcalico.org.v3 --version v3.33.0 --api-versions admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy | kubectl apply --server-side -f -
    
  3. Helm 차트로 Tigera Operator를 설치해요:

    helm install calico projectcalico/tigera-operator --version v3.33.0 --namespace tigera-operator
    

    또는 위에서 values.yaml을 만들었다면:

    helm install calico projectcalico/tigera-operator --version v3.33.0 -f values.yaml --namespace tigera-operator
    
  4. 다음 명령으로 모든 pod가 실행 중인지 확인해요.

    watch kubectl get pods -n calico-system
    

    각 pod의 STATUS가 Running이 될 때까지 기다려요.

    참고: Tigera Operator는 calico-system 네임스페이스에 리소스를 설치해요. 다른 설치 방법에서는 대신 kube-system 네임스페이스를 사용할 수도 있어요.

축하해요! 이제 Helm 3 차트로 Calico 설치를 마쳤어요.

다음 단계

필수

추천 튜토리얼

더 알아보기 (Learn more)

Helm 설치는 관리형 Kubernetes(EKS, GKE, AKS)에서도 손쉽게 쓸 수 있는 방법이에요. 다만 그런 클러스터에서는 values.yaml로 kubernetesProvider를 지정해야 한다는 점을 잊지 마세요.