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

Show last authors
1 = Cilium 네트워크 장애 진단 체크리스트 =
2
3 == 1. 클러스터 전체 노드 간 연결 상태 확인 ==
4
5 {{code language="bash"}}
6 kubectl get pods -n kube-system -o wide | grep cilium
7 kubectl exec -n kube-system <아무-cilium-pod> -- cilium-health status
8 {{/code}}
9
10 확인 포인트:
11
12 * ""Node"" 컬럼 = 호스트 대 호스트 연결 (cilium-health 에이전트, TCP/UDP 4240)
13 * ""Endpoints"" 컬럼 = Pod 대 Pod 연결 (실제 서비스 트래픽 경로, VXLAN이면 UDP 8472)
14
15 == 2. 특정 노드만 문제인지, 클러스터 전체 문제인지 판별 ==
16
17 서로 다른 2~3개 노드의 cilium pod에서 각각 실행해서 대칭 비교합니다.
18
19 {{code language="bash"}}
20 kubectl exec -n kube-system <노드A-cilium-pod> -- cilium-health status
21 kubectl exec -n kube-system <노드B-cilium-pod> -- cilium-health status
22 {{/code}}
23
24 * 한쪽만 다 안 보임 → 그 노드만 문제
25 * 양쪽 다 서로 안 보임 → 클러스터 전체(또는 인프라 레벨) 문제
26
27 == 3. Cilium agent 자체 상태 확인 ==
28
29 {{code language="bash"}}
30 kubectl exec -n kube-system <cilium-pod> -- cilium status --verbose
31 {{/code}}
32
33 체크 항목:
34
35 * ""Cilium: Ok""
36 * ""KubeProxyReplacement""
37 * ""Routing: Network: Tunnel [vxlan]""
38 * ""Modules Health""의 ""DEGRADED"" 항목 유무
39
40 == 4. 순수 네트워크(호스트) 레벨 검증 ==
41
42 {{code language="bash"}}
43 ping -c 3 <다른노드IP> ## 기본 연결
44 ping -M do -s 1472 -c 3 <다른노드IP> ## MTU 블랙홀 여부 (VXLAN 오버헤드 감안)
45 nc -u -zv -w3 <다른노드IP> 8472 ## VXLAN 포트 도달 확인
46 {{/code}}
47
48 == 5. 실제 패킷 드랍 여부 실시간 확인 ==
49
50 {{code language="bash"}}
51 kubectl exec -n kube-system <cilium-pod> -- cilium monitor --type drop
52 {{/code}}
53
54 아무것도 안 잡히면 Cilium보다 아래(인프라) 레벨 문제일 가능성이 높음.
55
56 == 6. OpenStack 환경일 경우 최우선 확인 사항 ==
57
58 * Neutron 보안그룹의 다음 Ingress 규칙 존재 여부
59 ** ""UDP"" (VXLAN, 포트 8472) — Pod 간 통신에 필요
60 ** ""TCP 4240"" — cilium-health 노드 헬스체크에 필요
61 * Neutron OVS agent 상태
62
63 {{code language="bash"}}
64 systemctl status neutron-openvswitch-agent
65 {{/code}}
66
67 == 진단 우선순위 요약 ==
68
69 1. ""cilium-health status""로 전체 그림 파악
70 1. 노드별 대칭 비교로 문제 범위 확정 (특정 노드 vs 클러스터 전체)
71 1. 순수 네트워크 테스트 (MTU, 포트 도달성)
72 1. 위에서 안 잡히면 **OpenStack 보안그룹**부터 의심 (특히 Ingress UDP/TCP 4240 누락)
73
74 == 사례: 2026-07-05 발생 장애 ==
75
76 * **증상**: kubernetes-dashboard 접속 시 kong-proxy → dashboard-web 연결 타임아웃 (502)
77 * **원인**: OpenStack 보안그룹에 Ingress UDP 규칙 및 TCP 4240 규칙이 없어 클러스터 전체 노드 간 VXLAN/헬스체크 통신 차단
78 * **해결**: 보안그룹에 아래 규칙 추가
79 ** Ingress / UDP / Any / 10.10.1.0/24
80 ** Ingress / TCP / 4240 / 10.10.1.0/24