k8s(311)
-
authentik OIDC를 Kubernetes에 붙일 때 반드시 알아야 할 핵심
Kubernetes 안에 authentik을 올리고, 내부 운영 서비스에 OIDC 로그인을 붙이다 보면 처음에는 내부 HTTP로 빠르게 확인하고 나중에 외부 HTTPS 요구가 생기는 경우가 많다.이번 글은 그 과정에서 어떤 점을 확인했고, 왜 결국 authentik도 외부 HTTPS host 기준으로 정리해야 했는지를 기록한 내용이다.구성 자체는 단순했다.authentik = Identity Providerooo service = OIDC ClientKubernetes Ingress = authentik 외부 진입점cert-manager + Let's Encrypt = TLS 인증서 발급외부 PostgreSQL = authentik DB하지만 실제 운영에서는 아래 세 가지가 핵심이었다.1. authent..
2026.04.26 -
Kubernetes 노드 점검 직후 재부팅: busybox exec format error와 원인 분리
운영 중 특정 노드에서 디스크 점검 직후 재부팅이 발생했다.처음에는 점검 명령이 원인처럼 보였지만, 실제로는 debug image 문제가능성이 있었다.👉 Node 재부팅이 발생했을 때는 "명령 때문인지, 환경 때문인지" 먼저분리하는 것이 중요하다.1. 증상Warning Rebooted 발생NodeReady 재진입동일 노드 pod 재시작2. 정상 reboot 여부 확인정상 reboot라면 systemd-shutdown 로그가 남는다.하지만 이번에는 로그가 끊겨 있었다.👉 정상 reboot 아님 가능성3. busybox debug 실패kubectl debug node/{=html} --image=busybox:1.36결과:exec format error👉 exec format error는 보통 아키텍처..
2026.04.25 -
Kubernetes 현황판 Root Disk가 N/A일 때: Metricbeat와 Elasticsearch 연결 문제 해결
Kubernetes 운영 현황판에서 CPU와 memory는 정상적으로 나오는데 rootdisk만 N/A로 표시되는 문제가 발생했다.처음에는 Metricbeat가 디스크 정보를 수집하지 못하는 문제처럼 보였지만,실제 원인은 대시보드 API pod에 Elasticsearch 접속 환경변수가 주입되지않은 것이었다.이 글은 Kubernetes API, Metricbeat, Elasticsearch, application runtimeenv를 단계별로 점검하며 원인을 좁힌 과정을 정리한다.🔍 핵심 포인트 (먼저 정리)👉 N/A는 데이터 없음이 아니라 조회 실패일 가능성이 높다👉 CPU / Memory와 Disk는 데이터 경로가 다르다CPU / Memory → metrics-server → Kubernetes..
2026.04.25 -
Elasticsearch DiskPressure 원인 분석: ILM 보관 정책으로 해결한 사례
Elasticsearch Pod Pending 문제를 해결한 이후에도 cluster 상태가yellow로 유지되는 현상이 발생했다.확인 결과 스케줄링 문제가 아니라 로그성 data stream 증가로 인한 디스크압박(DiskPressure) 이 원인이었다.이 글에서는 실제 운영 환경에서 발생한 문제를 기준으로인덱스 용량 확인 → ILM 설정 → 정리 과정까지 정리한다.🔍 1. 증상노드 상태 확인:kubectl describe node {=html}👉 DiskPressure 발생Elasticsearch 상태:kubectl get elasticsearch -n {=html}👉 Ready 상태지만 내부적으로 shard allocation 제한 발생⚠️ 2. 원인 확인 (인덱스 크기)Elasticsearch..
2026.04.25 -
Elasticsearch Pod Pending 원인 분석: local PV와 taint 충돌 해결
Kubernetes 환경에서 ECK로 운영 중인 Elasticsearch Pod가 장시간 Pending상태에 머무르는 문제가 발생했다.처음에는 리소스 부족을 의심했지만, 실제 원인은 local PV의 nodeaffinity와 node taint 정책 충돌이었다.이 글에서는 해당 문제의 원인과 해결 과정을 실무 기준으로 정리한다.🔍 1. 증상kubectl get pods -n -o widekubectl get elasticsearch,kibana -n es-es-hot-ssd-0 0/1 Pending👉 Kibana와 Operator는 정상👉 Elasticsearch만 ApplyingChanges 상태 유지⚠️ 2. 스케줄링 이벤트kubectl describe pod -n FailedSche..
2026.04.25 -
Kubernetes에서 Slack Webhook을 안전하게 관리하는 방법 (Fluentd + Minecraft 알림)
Minecraft 서버 접속 로그를 기반으로 Slack 알림을 보내는 환경을 운영하던중, Slack Webhook URL이 Kubernetes manifest에 평문으로 포함된 문제를발견했다.처음에는 단순히 동작 여부만 확인했지만, 운영 환경에서는 보안과 관리방식이 더 중요하다.이 글에서는 실제 운영 환경에서 Webhook을 Git과 분리하고 안전하게 관리한방법을 정리한다.1. 기존 구조전체 흐름:Minecraft 로그 → Fluentd → 로그 필터 → Slack WebhookFluentd 설정 예시: @type slack webhook_url"#{ENV['SLACK_WEBHOOK_URL']}" {=html}2. 문제점기존 방식:kind: Secret stringData: webhook_url: "{=..
2026.04.25