Kubernetes 시스템 요구 사항
클러스터에 속하지 않은 호스트에 Calico Open Source를 설치할 때 필요한 운영체제, 커널, 연결성 요구 사항을 정리해요. 지원 아키텍처와 권장 리눅스 배포판, 필요한 커널 모듈까지 짚어 줘요. 설치 전에 방화벽과 NetworkManager 설정도 함께 확인하세요.
출처: 문서
본문
노드 요구 사항
- x86-64, arm64, ppc64le 또는 s390x 프로세서
- Calico가 호스트의
cali*인터페이스를 관리할 수 있어야 해요. IPIP가 활성화된 경우(기본값) Calico는tunl*인터페이스도 관리할 수 있어야 해요. VXLAN이 활성화된 경우vxlan.calico인터페이스도 관리할 수 있어야 해요.
-
필수 의존성을 갖춘 Linux 커널 5.10 이상. 다음 배포판들은 필요한 커널과 의존성을 갖추고 있고 Calico와 잘 동작하는 것으로 알려져 있어요.
- Ubuntu 20.04 이상
- RHEL 8 이상
- Debian 10 이상
- BottleRocket 1.47 이상
- Talos 1.6 이상
SECONDARY: 위 대부분을 포함해 많은 Linux 배포판에는 NetworkManager가 포함되어 있어요. NetworkManager는 기본적으로 Calico가 인터페이스를 관리하는 것을 허용하지 않아요. 노드에 NetworkManager가 있다면 Calico를 설치하기 전에 NetworkManager가 Calico 인터페이스를 제어하지 못하게 하기의 단계를 완료하세요.
- Linux 배포판에 Firewalld나 다른 iptables 관리 도구가 설치되어 있다면 비활성화해야 해요. 이런 도구는 Calico가 추가한 규칙을 방해해 예상치 못한 동작을 일으킬 수 있어요.
SECONDARY: 호스트 방화벽이 필요하다면 Calico HostEndpoint와 GlobalNetworkPolicy로 구성할 수 있어요. 구성에 대한 자세한 내용은 호스트와 VM을 위한 정책을 참고하세요.
키/값 저장소
Calico는 모든 Calico 컴포넌트가 접근할 수 있는 키/값 저장소가 필요해요. 키/값 저장소는 etcdv3여야 해요.
네트워크 요구 사항
구성에 따라 필요한 트래픽을 호스트와 방화벽이 허용하는지 확인하세요.
| 구성 | 호스트 | 연결 유형 | 포트/프로토콜 |
|---|---|---|---|
| Calico 네트워킹 (BGP) | 모두 | 양방향 | TCP 179 |
| IP-in-IP 활성화된 Calico 네트워킹 (기본값) | 모두 | 양방향 | IP-in-IP, 보통 프로토콜 번호 4로 표기 |
| 모두 | etcd 호스트 | 인바운드 | 공식 포트는 TCP 2379이지만 달라질 수 있음 |
권한
Calico에 CAP_SYS_ADMIN 권한이 있는지 확인하세요.
필요한 권한을 제공하는 가장 간단한 방법은 Calico를 root로 실행하거나 privileged 컨테이너에서 실행하는 거예요.
커널 의존성
SUCCESS: 권장 배포판 중 하나를 사용한다면 이미 이 요구 사항을 충족하고 있어요.
배포판과 커널 버전이 워낙 다양해서 Calico 실행에 필요한 커널 모듈의 정확한 이름을 특정하기는 어려워요. 하지만 대체로 다음이 필요해요:
-
iptables모듈 ("legacy"와 "nft" 변형 모두 지원). 보통 매우 작은 모듈 여러 개로 나뉘어 있어요. 매치 기준(match criteria)마다 하나, 액션(action)마다 하나씩이에요. Calico에는 다음이 필요해요:- "base" 모듈 (클러스터에서 IPv6를 사용한다면 IPv6 버전도 포함)
- 최소한 다음 매치 기준:
set,rpfilter,addrtype,comment,conntrack,icmp,tcp,udp,ipvs,icmpv6(커널에서 IPv6를 사용한다면),mark,multiport,rpfilter,sctp,ipvs(IPVS 모드의kube-proxy를 사용한다면) - 최소한 다음 액션:
REJECT,ACCEPT,DROP,LOG
-
IP sets 지원
-
Netfilter Conntrack 지원이 컴파일되어 있어야 함 (SCTP를 사용한다면 SCTP 지원 포함)
-
IPVS 모드의
kube-proxy를 사용한다면 IPVS 지원 -
해당 모드로 Calico 네트워킹을 사용한다면 IPIP, VXLAN, WireGuard 지원
-
eBPF (
tc훅 지원 포함)와 XDP (eBPF 데이터 플레인을 사용하고 싶다면)
더 알아보기 (Learn more)
핵심은 Calico가 cali*·tunl*·vxlan.calico 인터페이스를 직접 관리할 수 있어야 한다는 점이에요. NetworkManager와 Firewalld가 이를 방해하지 않도록 설치 전에 미리 손봐 두는 것이 가장 흔한 설치 실패 원인을 없애 줘요.