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

OpenShift 시스템 요구 사항

원문 보기 위키 갱신

OpenShift 4 클러스터에 Calico를 설치하기 전에 반드시 확인해야 할 노드, 운영 체제, 네트워크 요구 사항을 정리한 문서예요. 커널 버전과 필수 커널 모듈, NetworkManager와 Firewalld 주의 사항, 열어야 할 포트까지 설치 전 체크리스트로 활용할 수 있어요. 권장 배포판을 쓰면 대부분의 커널 요구 사항은 이미 충족된 상태예요.

출처: 문서

본문

노드 요구 사항

  • x86-64, arm64, ppc64le, 또는 s390x 프로세서
  • Calico가 호스트의 cali* 인터페이스를 관리할 수 있어야 해요. IPIP가 활성화된 경우(기본값) Calico는 tunl* 인터페이스도 관리할 수 있어야 해요. VXLAN이 활성화된 경우 Calico는 vxlan.calico 인터페이스도 관리할 수 있어야 해요.
  • 필수 의존성을 갖춘 Linux 커널 5.10 이상. 다음 배포판들은 필요한 커널과 의존성을 갖추고 있고, Calico와 잘 동작하는 것으로 알려져 있어요.
    • RHEL 8 이상

참고: 위 항목 대부분을 포함해 많은 Linux 배포판에는 NetworkManager가 포함되어 있어요. 기본적으로 NetworkManager는 Calico가 인터페이스를 관리하는 것을 허용하지 않아요. 노드에 NetworkManager가 있다면 Calico를 설치하기 전에 NetworkManager가 Calico 인터페이스를 제어하지 못하도록 방지하기의 단계를 완료하세요.

  • 사용 중인 Linux 배포판에 Firewalld나 다른 iptables 관리 도구가 설치되어 있다면 비활성화해야 해요. 이런 도구들은 Calico가 추가한 규칙을 방해하고 예기치 않은 동작을 일으킬 수 있어요.

참고: 호스트 방화벽이 필요하다면 Calico HostEndpoint와 GlobalNetworkPolicy로 구성할 수 있어요. 구성에 대한 자세한 내용은 호스트와 VM을 위한 정책을 참고하세요.

키/값 스토어

Calico는 모든 Calico 구성 요소가 접근할 수 있는 키/값 스토어가 필요해요. OpenShift에서는 Kubernetes API 데이터스토어가 키/값 스토어로 사용돼요.

네트워크 요구 사항

구성에 따라 필요한 트래픽을 호스트와 방화벽이 허용하도록 하세요.

Configuration Host(s) Connection type Port/protocol
Calico networking (BGP) All Bidirectional TCP 179
Calico networking with IP-in-IP enabled (default) All Bidirectional IP-in-IP, often represented by its protocol number 4
Calico networking with VXLAN enabled All Bidirectional UDP 4789
Calico networking with Typha enabled Typha agent hosts Incoming TCP 5473 (default)
All kube-apiserver host Incoming Often TCP 443 or 6443*

* --secure-port 플래그로 kube-apiserver에 전달되는 값이에요. 찾을 수 없다면 kubectl get svc kubernetes -o yaml이 반환하는 targetPort 값을 확인하세요.

권한

Calico에 CAP_SYS_ADMIN 권한이 있는지 확인하세요.

필요한 권한을 제공하는 가장 간단한 방법은 Calico를 root로 실행하거나 privileged 컨테이너에서 실행하는 거예요.

OpenShift 요구 사항

Calico는 OpenShift Container Platform을 지원해요.

커널 의존성

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)

설치 전에 이 요구 사항 체크리스트를 통과해 두면 OpenShift에서의 Calico 설치가 훨씬 수월해요. 특히 NetworkManager와 Firewalld 처리는 설치 실패의 흔한 원인이니 미리 손보아 두세요.