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 처리는 설치 실패의 흔한 원인이니 미리 손보아 두세요.