단일 호스트 Kubernetes 클러스터에 Calico 설치하기
kubeadm으로 만든 단일 호스트 Kubernetes 클러스터에 Calico를 설치하는 빠른 시작 가이드예요. 약 15분이면 Calico가 동작하는 클러스터를 갖출 수 있어요. Calico 기능을 가볍게 체험해 보기에 딱 좋아요.
출처: 문서
본문
큰 그림
이 가이드는 약 15분 만에 Calico가 설치된 단일 호스트 Kubernetes 클러스터를 만들어 줘요.
활용 가치
이 가이드를 사용하면 Calico 기능을 빠르고 쉽게 체험할 수 있어요. 프로덕션에 적합한 클러스터를 배포하려면 Calico on Kubernetes를 참고하세요.
시작하기 전에
필수 사항
-
다음 요구사항을 만족하는 Linux 호스트:
- x86-64, arm64, ppc64le, 또는 s390x 프로세서
- 2CPU
- 2GB RAM
- 10GB 여유 디스크 공간
- RedHat Enterprise Linux 7.x+, CentOS 7.x+, Ubuntu 18.04+, 또는 Debian 9.x+
-
Calico가 호스트의
cali와tunl인터페이스를 관리할 수 있어야 해요호스트에 NetworkManager가 있다면 Configure NetworkManager를 참고하세요.
개념
오퍼레이터 기반 설치
이 퀵스타트 가이드는 Tigera Operator를 사용해 Calico를 설치해요. 오퍼레이터는 커스텀 리소스 정의(CRD)로 정의된 Kubernetes API를 통해 노출되는 Calico의 라이프사이클 관리를 제공해요.
SECONDARY: 오퍼레이터 없이 Kubernetes 매니페스트를 직접 사용해 Calico를 설치하는 것도 가능해요. Tigera Operator를 사용하지 않는 플랫폼과 가이드에서는 이 가이드와 단계와 Kubernetes 리소스가 조금 다르게 보일 수 있어요.
방법
여러분이 얻게 되는 구성의 기술적 세부사항:
| Policy | IPAM | CNI | Overlay | Routing | Datastore |
|---|---|---|---|---|---|
| Calico | Calico | Calico | VXLAN | Calico | kubernetes |
?
단일 호스트 Kubernetes 클러스터 만들기
-
Kubernetes 안내에 따라 kubeadm을 설치하세요
SECONDARY: kubeadm을 설치한 후에는 호스트를 끄거나 재시작하지 마세요. 바로 다음 단계로 진행하세요.
-
sudo 권한이 있는 일반 사용자로 kubeadm을 설치한 호스트에서 터미널을 여세요.
-
다음 명령어로 컨트롤 플레인을 초기화하세요.
sudo kubeadm init --pod-network-cidr=192.168.0.0/16SECONDARY: 192.168.0.0/16이 네트워크에서 이미 사용 중이라면 다른 pod network CIDR을 골라 위 명령어에서 192.168.0.0/16을 교체해야 해요.
-
다음 명령어를 실행해 kubectl을 설정하세요 (
kubeadm init이 반환하는 명령어이기도 해요).mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Calico 설치하기
-
Calico 커스텀 리소스 정의(CRD)를 설치하세요.
클러스터가 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를 설치하세요. 이 매니페스트에서 사용할 수 있는 설정 옵션에 대한 자세한 내용은 Tigera Operator API 레퍼런스를 참고하세요.
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/custom-resources-bpf.yaml이 명령은 eBPF 데이터 플레인을 기본값으로 Calico Open Source 설치를 완료해요.
SECONDARY: 이 매니페스트를 만들기 전에 내용을 읽어 보고, 설정이 여러분의 환경에 맞는지 확인하세요. 예를 들어 기본 IP 풀 CIDR을 pod network CIDR에 맞게 바꿔야 할 수도 있어요.
-
다음 명령어로 모든 파드가 실행 중인지 확인하세요.
watch kubectl get pods -n calico-system각 파드의
STATUS가Running이 될 때까지 기다리세요.SECONDARY: Tigera Operator는
calico-system네임스페이스에 리소스를 설치해요. 다른 설치 방식은 그 대신kube-system네임스페이스를 사용할 수도 있어요. -
컨트롤 플레인에 파드를 스케줄링할 수 있도록 taint를 제거하세요.
kubectl taint nodes --all node-role.kubernetes.io/control-plane-다음과 같이 출력되어야 해요.
node/<your-hostname> untainted -
다음 명령어를 실행해 배포를 모니터링하세요:
watch kubectl get tigerastatus몇 분 후 모든 Calico 컴포넌트가
AVAILABLE컬럼에서True를 표시해요.예상 출력
NAME AVAILABLE PROGRESSING DEGRADED SINCE apiserver True False False 4m9s calico True False False 3m29s goldmane True False False 3m39s ippools True False False 6m4s kubeproxy-monitor True False False 6m15s whisker True False False 3m19s축하해요! 이제 Calico가 설치된 단일 호스트 Kubernetes 클러스터가 생겼어요.
다음 단계
필수
추천 튜토리얼
- Kubernetes NetworkPolicy API로 간단한 애플리케이션 보안 설정하기
- Kubernetes NetworkPolicy API로 ingress와 egress 트래픽 제어하기
- 차단된 연결과 허용된 연결을 실시간으로 보여주는 튜토리얼 실행하기(https://docs.tigera.io/calico/latest/network-policy/get-started/kubernetes-policy/kubernetes-demo.md)
- 실습 워크숍: Calico와 Kubernetes의 기본을 배워 보세요.
더 알아보기 (Learn more)
이 가이드는 테스트·개발용 단일 호스트 클러스터를 대상으로 해요. 이 가이드의 설치는 eBPF 데이터 플레인을 기본으로 사용한다는 점도 눈여겨보세요. 프로덕션 배포에는 Calico on Kubernetes 문서의 정식 절차를 따르세요.