본문 바로가기
728x90

데브옵스 이야기/Kubernetes6

쿠버네티스 장애 원인 분석을 Slack으로 받아보기 (feat. K8sGPT) 배경EKS를 운영하다 보면 크고 작은 장애와 마주하게 됩니다. (Pod가 뜨지 않거나, Service가 연결되지 않거나, Ingress가 정상인데 트래픽이 오지 않는 등 원인은 다양합니다.) 보통 `kubectl describe`. `kubectl logs`, pod 상세에서 event 세션 확인, Prometheus의 Alertmanager를 통해 알람을 확인하는 방식으로 문제의 원인을 파악합니다. 하지만 실제 운영 환경에서는 에러 원인은 여러 리소스에 걸쳐 있고, 맥락을 종합해야 하는 경우가 많습니다. AI를 활용해 Kubernetes 클러스터 운영을 조금 더 효율적으로 만들 수 없을까 고민하던 중, 문득 2024년 9월 CNKCD2024에서 발표된 [당신이 누구던 쿠버네티스를 사용한다면 K8s.. 2026. 1. 10.
stakater/Reloader 사용시 configmap, secret 변경할 시에 감지 안되는 이슈 K8s 운영 과정에서 ConfigMap/Secret 변경 시 Pod를 재기동하는 것은 꼭 필요한 프로세스입니다.다만 사람이 수동으로 처리하기 어렵기 때문에, 보통은 Helm 템플릿 + checksum annotation(`checksum/config`) 방식으로 ConfigMap/Secret 변경을 감지해 자동으로 Rolling Update가 일어나도록 구성합니다. 하지만 사내에서는 아직 Helm을 도입하지 않았고(준비중), Kustomize를 활용하여 리소스를 관리하고 있기 때문에 오픈소스인 stakater/reloader를 도입해 ConfigMap/Secret 변경 시 워크로드를 자동으로 재배포하도록 운영하고 있습니다. 그런데 운영 중 ConfigMap이 변경되었음에도 간헐적으로 Pod가 재시작되지 .. 2025. 12. 22.
K8s의 Memory? (RAM, Storage) Memory?많은 사람들이 메모리와 스토리지를 동일한 것으로 생각하기도 합니다. 아마 지칭하는 단위를 GB를 사용하기 때문이 아닐까 싶은데요.둘 다 용량을 나타내는 GB단위를 사용하는 이유는 기본적으로 용량을 측정하는 표준 단위이기 때문입니다. 엄연히 다른 Memory우리가 흔히 말하는 메모리에는 크게 RAM이라고 하는 휘발성 메모리, Storage라고 불리는 영구적 메모리 2가지가 존재합니다. K8s의 Memory이 두 가지의 차이를 살펴보기 전에 먼저 Pod를 정의하는 manifest file에 선언하는 resource.limit.memory와 resource.request.memory는 무엇을 의미할까요?apiVersion: v1kind: Podmetadata: name: example-pods.. 2024. 8. 2.
Kubernetes common errors CrashLoopBackOff설명: 파드가 반복적으로 충돌하고 재시작합니다.문제 해결 방법 : 애플리케이션의 시작 및 초기화 코드를 조사합니다.명령어 # 파드 로그 확인kubectl logs # Pod 명세 확인kubectl describe pod ImagePullBackOff설명: Kubernetes가 레지스트리에서 컨테이너 이미지를 가져올 수 없습니다.문제 해결 방법:이미지 이름과 태그를 확인합니다.이미지 레지스트리 자격 증명을 확인합니다.지정된 레지스트리에 이미지가 존재하는지 확인합니다. Pending Pods설명: 파드가 "Pending" 상태에 머물며 스케줄링되지 않습니다.문제 해결 방법:노드 자원 (CPU, 메모리)을 확인하여 충분한 용량이 있는지 확인합니다.노드 셀렉터 또는 어피니티를 사용.. 2024. 7. 29.
CKA, CKAD 취득 후기 들어가며 사내에서 Kubernetes를 도입하기 위해 공부하던 찰나 쿠버네티스 관련 자격증이 있다는 것을 알게 되었습니다. 하지만 당시에 자격증 취득을 위한 공부보단 하루 빨리 실무에 적용하기 급급했던터라 수박겉핥기 식으로 공부를 했었습니다. 그렇게 오직 이론보단 실무를 위하여 Kubernetes를 도입하여 운영했었고, 어느정도 시간이 지남에 따라 안정화가 되어 자격증을 공부를 하기 시작했습니다. (시기로 보자면 23년 11월부터 준비를 했네요.) 23년 12월에 2번의 시험을 본 후 연달아 불합격했고 24년 1월에 한 번 더 결제를 하여 2번을 보아 합격했습니다!(총 4번을 보았네요…) 그리고 바로 2주 뒤 45% 설날 세일때 이때다 싶어 CKAD까지 1번의 불합격에 이어 결국 합격을 했습니다..! .. 2024. 3. 4.
fluent-bit를 활용한 Metric Data 수집하기 들어가며kubernetes를 상용으로 운영하기 전 CPU나 system에 대한 Metrics Data를 수집하고 시각화하여 원활한 운영을 해야할 필요가 있었습니다.현재 EFK Stack으로 logging system을 구축해놓았었는데, 그 중 fluent-bit를 활용하여 metrics data를 수집하는 방법에 대해 다뤄보려고 합니다.CPU Metricfluent-bit의 input plugin중 cpu는 기본적으로 프로세스 혹은 전체 시스템의 CPU 사용량을 측정합니다.설정된 시간에 대해 백분율 단위로 수집되며 현재 이 plugin은 linux에서만 사용하실 수 있습니다.key key namedescriptioncpu_p이 값은 사용자 및 커널 공간에 소요된 사간 대비 전체 시스템의 CPU 사용량을 .. 2023. 4. 26.
728x90