안녕하세요! 오늘은 쿠버네티스 환경에서 가장 강력한 CNI(Container Network Interface)인 Cilium을 마스터하기 위한 필수 도구, Cilium CLI를 총정리해 보겠습니다.
Cilium을 운영하다 보면 단순히 "설치"를 넘어, 왜 통신이 안 되는지 트러블슈팅(Troubleshooting)하고 심층 분석(Deep Dive)해야 할 때가 반드시 옵니다.
설치부터 패킷 단위의 디버깅까지, 실무에서 바로 쓸 수 있는 핵심 명령어를 상세히 정리해 드립니다. 📝

1️⃣ 설치 및 수명주기 관리 (Installation & Lifecycle)
가장 기본이 되는 설치, 버전 확인, 삭제 관련 명령어입니다.
ℹ️ cilium version
Cilium CLI 클라이언트 버전과 현재 클러스터에서 실행 중인 Cilium 이미지 버전을 확인합니다.
- 활용: 트러블슈팅 시 클라이언트와 서버(에이전트) 간의 버전 호환성을 확인할 때 가장 먼저 수행합니다.
📦 cilium install
클러스터에 Cilium을 설치합니다. 클라우드 환경(EKS, GKE 등)을 자동 감지하여 최적의 구성을 적용합니다.
- Tip: --set 플래그로 Helm Value를 직접 주입할 수 있습니다. (예: cilium install --set ipam.mode=kubernetes)
🗑️ cilium uninstall
Cilium과 관련된 모든 리소스(ConfigMap, ServiceAccount, DaemonSet 등)를 클러스터에서 깨끗하게 제거합니다.
- 주의: CNI가 삭제되면 파드 간 통신이 끊어지므로 운영 환경에서는 주의해야 합니다.
2️⃣ 상태 진단 및 로그 확인 (Status & Logs)
"지금 내 네트워크가 정상인가?"를 판단하는 단계입니다.
🩺 cilium status
Cilium 에이전트, 오퍼레이터, CNI 상태를 한눈에 보여줍니다.
- Tip: --wait 옵션을 사용하면 모든 컴포넌트가 Running 상태가 될 때까지 대기합니다.
🧪 cilium connectivity test
네트워크 연결성을 검증하는 골든 패스(Golden Path) 테스트입니다. 파드 간 통신, DNS, 외부 연결 등을 시나리오별로 자동 테스트합니다.
📜 kubectl logs -n kube-system
Cilium CLI가 작동하지 않거나 cilium status조차 실패할 때 사용하는 최후의 보루입니다.
- 설명: 쿠버네티스 표준 명령어로 Cilium 에이전트(파드)의 표준 출력 로그를 확인합니다.
- 활용: 에이전트가 왜 죽었는지(CrashLoopBackOff), 초기화 단계에서 어떤 치명적 오류(Fatal Error)가 있었는지 원시 로그를 볼 때 사용합니다.
3️⃣ 엔드포인트 및 정책 분석 (Endpoint & Policy)
Cilium은 파드(Pod)를 Endpoint라는 단위로 관리합니다. 방화벽 정책(Network Policy)이 제대로 먹히고 있는지 확인하려면 이곳을 봐야 합니다.
(※ 아래 명령어들은 주로 Cilium 파드 내부에서 실행하거나 CLI 래퍼를 통해 확인합니다.)
📋 cilium endpoint list
현재 노드에서 관리 중인 모든 엔드포인트의 요약 정보를 봅니다.
- 핵심 체크 포인트:
- POLICY (Ingress/Egress): Enabled 상태여야 방화벽 정책이 작동 중인 것입니다. Disabled라면 정책이 적용되지 않은 상태(Allow-all)입니다.
- IDENTITY: Cilium은 IP가 아닌 이 ID로 보안 통신을 수행합니다.
🔍 cilium endpoint get
특정 엔드포인트(ID)의 모든 세부 정보를 JSON 형태로 봅니다.
- 활용: "정책은 켜져 있는데(Enabled) 왜 통신이 안 되지?" 싶을 때 사용합니다. 해당 엔드포인트에 적용된 구체적인 라벨(Labels)과 정책 규칙(Policy Rules)을 낱낱이 파헤칠 수 있습니다.
4️⃣ 심층 디버깅 및 관측 (Deep Dive & Observability)
네트워크 엔지니어의 영역입니다. 패킷 흐름과 eBPF 상태를 직접 들여다봅니다.
📡 cilium monitor
Cilium 디버깅의 끝판왕입니다. eBPF 데이터 경로를 흐르는 패킷의 이벤트를 실시간으로 스트리밍합니다.
- 활용: tcpdump와 비슷하지만, eBPF 레벨에서 패킷이 Drop(차단)되는지, Forward(전송)되는지 명확한 이유와 함께 보여줍니다.
- Tip: cilium monitor --type drop 명령을 쓰면 차단된 패킷만 골라볼 수 있어 방화벽 디버깅에 최고입니다.
🧠 cilium bpf status
eBPF 맵(Map)의 상태와 리소스 사용량을 확인합니다.
- 활용: 대규모 클러스터에서 "더 이상 연결을 맺을 수 없다"는 에러가 날 때, eBPF Map의 용량(Capacity)이 가득 찼는지 확인할 때 사용합니다.
🔭 cilium hubble ui
cilium monitor가 텍스트 기반이라면, Hubble은 이를 시각화하여 서비스 간의 관계도(Service Map)를 그려줍니다. 브라우저를 통해 직관적으로 트래픽 흐름을 볼 수 있습니다.
📝 요약: 상황별 명령어 치트시트
| 상황 | 추천 명령어 |
|---|---|
| 설치 및 버전 확인 | cilium install, cilium version |
| 전체 건강 상태 체크 | cilium status --wait |
| 에이전트가 죽었을 때 | kubectl logs -n kube-system |
| 정책 적용 여부 확인 | cilium endpoint list |
| 특정 파드 상세 분석 | cilium endpoint get |
| 패킷 차단 원인 추적 | cilium monitor --type drop |
| 리소스 초기화 | cilium uninstall |
Cilium은 강력한 기능을 제공하는 만큼 익혀야 할 명령어도 많습니다. 하지만 위에서 정리해 드린 Lifecycle -> Status -> Endpoint -> Monitor 흐름만 기억하신다면, 어떤 네트워크 이슈가 발생해도 당황하지 않고 해결하실 수 있을 것입니다! 👍
여러분의 쿠버네티스 네트워크가 언제나 쾌적하길 바랍니다! 🚀
'클라우드 > Cilium' 카테고리의 다른 글
| 🚀 리눅스 커널의 초능력, eBPF와 Cilium 완벽 가이드: 쿠버네티스 네트워킹의 미래 (0) | 2025.12.05 |
|---|---|
| 쿠버네티스 멀티 클러스터 연결의 정석: Cilium Cluster Mesh 완벽 가이드 🌐🚀 (0) | 2025.12.05 |
| Hubble에서 'Unknown/L3'만 보이시나요? 🕵️♂️ 단 한 줄로 L7 트래픽 파싱 완벽 정복! (0) | 2025.12.05 |
| [Cilium] 🔭 쿠버네티스 네트워크의 '눈', Hubble CLI 명령어 완벽 가이드 (0) | 2025.12.05 |
| [기술 칼럼] Istio vs Cilium: 도대체 무엇을 선택해야 할까? (아키텍처부터 BP까지 완벽 정리) (0) | 2025.12.05 |