Kubernetes 도구
Source: Dev.to
kubectl
모든 작업을 kubectl 로 실행합니다: pod 조회, describe, 로그, exec, delete, apply 등—하루에 여러 네임스페이스에서 수십 번씩 수행합니다. 작동은 하지만 -n 플래그를 반복해서 입력하는 것은 느리고 번거로울 수 있습니다.
K9s / Lens
전체 클러스터를 한 화면에 보여주는 터미널 UI입니다. 네임스페이스와 클러스터를 전환하고, 로그를 tail 하며, pod에 exec 하고, 대부분의 kubectl 작업을 반복 플래그 없이 수행할 수 있습니다.
Argo CD
Git이 단일 진실 소스가 됩니다. 모든 변경 사항이 자동으로 클러스터와 동기화되며, 누군가가 배포를 수동으로 수정하면 Argo CD가 이를 덮어써서 라이브 상태를 Git과 일치시켜 드리프트를 방지합니다.
KEDA
CPU뿐만 아니라 큐 깊이, SQS 메시지 수, Prometheus 메트릭 등 외부 메트릭을 기반으로 pod를 스케일링합니다. Kafka 컨슈머(또는 유사한 서비스)가 과부하될 때 백로그를 해소합니다.
Karpenter
용량 부족으로 pod가 Pending 상태에 머무를 때 몇 초 안에 새로운 노드를 자동으로 프로비저닝하고, 부하가 감소하면 노드를 제거하여 사용한 만큼만 비용을 지불하도록 합니다.
Network Policies
기본적으로 모든 pod가 서로 통신할 수 있습니다. 네트워크 정책을 사용하면 예를 들어 결제 서비스만 데이터베이스에 접근하도록 제한함으로써 침해된 pod의 영향을 최소화할 수 있습니다.
Service Mesh (Istio / Linkerd)
각 pod 옆에 사이드카 프록시를 주입해 mTLS, 재시도, 서킷 브레이킹, 트래픽 메트릭 등을 애플리케이션 코드를 변경하지 않고 제공합니다. 이를 통해 마이크로서비스 간 연쇄 장애를 가시화할 수 있습니다.
Secrets Store CSI Driver
Vault나 AWS Secrets Manager와 같은 외부 스토어에서 비밀을 직접 pod에 파일 형태로 마운트합니다. 비밀이 Kubernetes etcd에 저장되지 않아 kubectl 로 접근 가능한 스토리지에 노출되지 않습니다.
Kyverno
입장 시점에 정책을 적용합니다: 루트 컨테이너 차단, 이미지 다이제스트 요구, 배포에 리소스 제한 설정 등을 강제해 보안이 취약하거나 잘못 구성된 워크로드가 클러스터에 들어오는 것을 방지합니다.
Prometheus & Grafana
Prometheus가 모든 pod, 노드, 컴포넌트의 메트릭을 수집하고, Grafana가 이러한 메트릭을 대시보드에 시각화합니다. 이를 통해 스파이크 발생 시점과 원인 서비스 등을 정확히 파악할 수 있습니다.
Jaeger
분산 트레이싱을 제공하여 단일 요청이 모든 서비스에 걸쳐 어떻게 흐르는지 보여줍니다. 홉별 지연 시간과 정확한 실패 지점을 표시해, 파편화된 로그와 집계 메트릭을 완전하고 실행 가능한 스토리로 변환합니다.