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 차트 내려받기
- Calico Helm 저장소를 추가해요:
helm repo add projectcalico https://docs.tigera.io/calico/charts
Helm 차트 커스터마이즈하기
EKS, GKE, AKS, Mirantis Kubernetes Engine(MKE)으로 설치된 클러스터에 설치하거나, TLS 인증서를 커스터마이즈해야 한다면 values.yaml 파일을 만들어 이 Helm 차트를 커스터마이즈해야 해요. 그렇지 않다면 이 단계는 건너뛰어도 돼요.
-
EKS, GKE, AKS, Mirantis Kubernetes Engine(MKE)으로 설치된 클러스터에 설치한다면, Tigera Operator API 참조에 설명된 대로
kubernetesProvider를 설정해요. 예를 들면:echo '{ installation: {kubernetesProvider: EKS }}' > values.yamlKubernetes 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 설치하기
-
tigera-operator네임스페이스를 만들어요.kubectl create namespace tigera-operator -
필요한 커스텀 리소스 정의를 설치해요.
클러스터가 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 - -
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 -
다음 명령으로 모든 pod가 실행 중인지 확인해요.
watch kubectl get pods -n calico-system각 pod의
STATUS가Running이 될 때까지 기다려요.참고: Tigera Operator는
calico-system네임스페이스에 리소스를 설치해요. 다른 설치 방법에서는 대신kube-system네임스페이스를 사용할 수도 있어요.
축하해요! 이제 Helm 3 차트로 Calico 설치를 마쳤어요.
다음 단계
필수
추천 튜토리얼
- Kubernetes NetworkPolicy API로 간단한 애플리케이션 보호하기
- Kubernetes NetworkPolicy API로 ingress와 egress 트래픽 제어하기
- 차단되는 연결과 허용되는 연결을 실시간으로 보여주는 튜토리얼 실행하기
더 알아보기 (Learn more)
Helm 설치는 관리형 Kubernetes(EKS, GKE, AKS)에서도 손쉽게 쓸 수 있는 방법이에요. 다만 그런 클러스터에서는 values.yaml로 kubernetesProvider를 지정해야 한다는 점을 잊지 마세요.