Cilium 네트워크 장애 진단 체크리스트

Last modified by Sungwon Lee on 2026/07/05 12:33

Cilium 네트워크 장애 진단 체크리스트

1. 클러스터 전체 노드 간 연결 상태 확인

kubectl get pods -n kube-system -o wide | grep cilium
kubectl exec -n kube-system <아무-cilium-pod> -- cilium-health status

확인 포인트:

  • ""Node"" 컬럼 = 호스트 대 호스트 연결 (cilium-health 에이전트, TCP/UDP 4240)
  • ""Endpoints"" 컬럼 = Pod 대 Pod 연결 (실제 서비스 트래픽 경로, VXLAN이면 UDP 8472)

2. 특정 노드만 문제인지, 클러스터 전체 문제인지 판별

서로 다른 23개 노드의 cilium pod에서 각각 실행해서 대칭 비교합니다.

kubectl exec -n kube-system <노드A-cilium-pod> -- cilium-health status
kubectl exec -n kube-system <노드B-cilium-pod> -- cilium-health status
  • 한쪽만 다 안 보임 → 그 노드만 문제
  • 양쪽 다 서로 안 보임 → 클러스터 전체(또는 인프라 레벨) 문제

3. Cilium agent 자체 상태 확인

kubectl exec -n kube-system <cilium-pod> -- cilium status --verbose

체크 항목:

  • ""Cilium: Ok""
  • ""KubeProxyReplacement""
  • ""Routing: Network: Tunnel [vxlan]""
  • ""Modules Health""의 ""DEGRADED"" 항목 유무

4. 순수 네트워크(호스트) 레벨 검증

ping -c 3 <다른노드IP>                    ## 기본 연결
ping -M do -s 1472 -c 3 <다른노드IP>      ## MTU 블랙홀 여부 (VXLAN 오버헤드 감안)
nc -u -zv -w3 <다른노드IP> 8472           ## VXLAN 포트 도달 확인

5. 실제 패킷 드랍 여부 실시간 확인

kubectl exec -n kube-system <cilium-pod> -- cilium monitor --type drop

아무것도 안 잡히면 Cilium보다 아래(인프라) 레벨 문제일 가능성이 높음.

6. OpenStack 환경일 경우 최우선 확인 사항

  • Neutron 보안그룹의 다음 Ingress 규칙 존재 여부
    • ""UDP"" (VXLAN, 포트 8472) — Pod 간 통신에 필요
    • ""TCP 4240"" — cilium-health 노드 헬스체크에 필요
  • Neutron OVS agent 상태
systemctl status neutron-openvswitch-agent

진단 우선순위 요약

  1. ""cilium-health status""로 전체 그림 파악
  2. 노드별 대칭 비교로 문제 범위 확정 (특정 노드 vs 클러스터 전체)
  3. 순수 네트워크 테스트 (MTU, 포트 도달성)
  4. 위에서 안 잡히면 OpenStack 보안그룹부터 의심 (특히 Ingress UDP/TCP 4240 누락)

사례: 2026-07-05 발생 장애

  • 증상: kubernetes-dashboard 접속 시 kong-proxy → dashboard-web 연결 타임아웃 (502)
  • 원인: OpenStack 보안그룹에 Ingress UDP 규칙 및 TCP 4240 규칙이 없어 클러스터 전체 노드 간 VXLAN/헬스체크 통신 차단
  • 해결: 보안그룹에 아래 규칙 추가
    • Ingress / UDP / Any / 10.10.1.0/24
    • Ingress / TCP / 4240 / 10.10.1.0/24