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

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가 이를 방해하지 않도록 설치 전에 미리 손봐 두는 것이 가장 흔한 설치 실패 원인을 없애 줘요.