Diagnosing a 9-Second Node Blackout: Rook Tolerations and Control Plane Metrics

워커 노드 한 대가 9초간 네트워크에서 사라지며 Rook Ceph 컨트롤 파드가 즉시 축출된 장애를 추적한 기록입니다. 관측 도구가 장애 노드 위에 있을 때 생기는 판단 착오를 걷어내는 방법과, 축출 유예 시간 조정 및 컨트롤 플레인 메트릭 노출 절차를 다룹니다.

계속 읽기: Diagnosing a 9-Second Node Blackout: Rook Tolerations and Control Plane Metrics

Diagnosing a WordPress Plugin Update Notice That Never Clears

WordPress 관리 화면에서 플러그인을 업데이트해도 업데이트 알림이 사라지지 않고 계속 반복되는 문제를 처리한 기록입니다. 업데이트는 성공했다고 표시되는데 화면을 새로고침하면 같은 플러그인의 업데이트 알림이 다시 떠 있었습니다. 처음에는 Kubernetes로 이전하면서 생긴 파일 권한이나 스토리지 문제로 의심했습니다. 확인해 보니 서로 무관한 두 가지 원인이 겹쳐 있었고, 두 번째 원인은 이쪽 환경 문제가 아니라 배포된 플러그인 패키지 자체의 문제였습니다. 같은 증상을 겪는 경우 진단 순서를 줄일 수 있도록 정리합니다.

계속 읽기: Diagnosing a WordPress Plugin Update Notice That Never Clears

Preserving the Real Client IP Behind Traefik: externalTrafficPolicy and mod_remoteip

Kubernetes로 이전한 WordPress에서 방문자 IP가 실제 접속자가 아니라 리버스 프록시의 주소로 기록되는 문제를 처리한 기록입니다. 트래픽 통계 플러그인에 찍히는 방문자 IP가 모두 동일한 값이었고, 확인해 보니 Traefik 파드의 IP였습니다. 리버스 프록시 뒤에서 클라이언트 IP가 사라지는 것은 흔한 증상이라 mod_remoteip 설정만 점검하면 될 것으로 예상했지만, 실제로는 서로 다른 계층에서 두 가지 원인이 겹쳐 있었습니다. 하나는 Kubernetes Service의 SNAT 동작이고, 다른 하나는 mod_remoteip가 사설 IP 대역을…

계속 읽기: Preserving the Real Client IP Behind Traefik: externalTrafficPolicy and mod_remoteip

Upgrading Kubernetes Add-ons: Calico, MetalLB, and Traefik

Kubernetes v1.33에서 v1.36으로 올리며 Calico, MetalLB, metrics-server를 업그레이드하고 Traefik을 이중화한 과정입니다. 표준 매니페스트가 로컬 커스터마이즈를 지우는 문제, externalTrafficPolicy 때문에 VIP가 22초 사라진 원인, Helm values 병합이 만든 중복 키를 실측과 함께 정리했습니다.

계속 읽기: Upgrading Kubernetes Add-ons: Calico, MetalLB, and Traefik

Migrating Standalone MariaDB to a Galera Cluster on Kubernetes

MariaDB Galera 전환 작업을 진행했습니다. 그동안 단일 인스턴스(단일 replica + ReadWriteOnce 볼륨) 구조로 MariaDB를 운영해왔는데, Kubernetes 클러스터 업그레이드 도중 MariaDB가 떠 있는 워커 노드를 drain할 때마다 2~3분 정도 서비스가 끊기는 문제가 반복됐습니다. 단일 replica + RWO 볼륨 조합에서는 drain 시 기존 노드에서 볼륨이 detach되고 새 노드에 attach되는 동안의 지연을 구조적으로 피할 수 없었습니다.

계속 읽기: Migrating Standalone MariaDB to a Galera Cluster on Kubernetes

Enabling GitLab Container Registry over HTTPS with a Custom TLS Certificate

GitLab Container Registry 를 자체 관리형 Omnibus GitLab에서 HTTPS로 활성화한 작업 기록입니다. WordPress를 Kubernetes로 이전하면서 커스텀 이미지를 저장할 레지스트리가 필요했는데, 로컬 환경에 docker나 podman이 없어 클러스터 안에서 Kaniko로 이미지를 빌드하고 곧바로 푸시할 대상이 있어야 했습니다. 이미 사내에서 운영 중인 GitLab이 있었으므로 별도 레지스트리를 구축하는 대신 GitLab에 내장된 Container…

계속 읽기: Enabling GitLab Container Registry over HTTPS with a Custom TLS Certificate