IL-0079 Altinity · 2025-05-17kubernetesgcpnetworking
5월 17일 이른 시각에 Altinity.Cloud 의 GKE 클러스터 여러 개에서 인그레스 트래픽이 완전히 끊겼고, 그 위의 ClickHouse 서비스에 접속할 수 없게 됐다. GKE 가 워커 노드를 ubuntu_containerd 1.32.3-gke.1785003 이미지로 자동 업그레이드한 것이 원인이었다. 이 이미지는 커널 6.8.0-1022-gke 를 쓴다.
새 커널은 nf_tables 모듈의 패키징이나 로딩 방식에 회귀가 있어 kube-proxy 가 쓰는 일부 iptables 확장을 지원하지 않았다. kube-proxy 는 IPv6 규칙을 적용하다 계속 실패했고, 로드밸런서 헬스 체크가 실패하면서 트래픽이 노드로 오지 않았다. 이 문제는 Ubuntu 커널 시리즈에서 이미 추적 중인 버그였다.
잡기 어려웠던 이유가 여럿 있었다. GKE 는 노드 자동 업그레이드를 끌 수 없었다. IPv6 를 쓰지 않아도 IPv6 iptables 규칙이 처리됐다. GKE 이미지 검증이 이 문제를 잡지 못해 깨진 이미지가 운영 클러스터까지 들어왔다. 더 새로운 이미지에도 같은 회귀가 있어 다음 버전으로 올려서 벗어날 수도 없었다.
팀은 먼저 아직 영향받지 않은 클러스터의 업그레이드를 멈췄다. 그다음 로드밸런서 헬스 체크가 kube-proxy 헬스 체크 실패를 무시하도록 바꿔, 워크로드와 인프라를 건드리지 않고 서비스를 되살렸다. 재발을 막으려고 영향받은 클러스터를 다른 커널을 쓰는 cos_containerd 이미지로 옮기기 시작했다.
토요일인 5월 17일 이른 시각에 OpsGenie 알림이 울렸다. Altinity.Cloud 의 ClickHouse 클러스터 하나가 갑자기 조용해졌다. 쿼리도, 지표도, 접속하려는 고객의 로그도 들어오지 않았다. 파드는 모두 Running 이었고 노드도 정상으로 보였지만 데이터베이스까지 오는 트래픽이 없었다.
같은 증상이 한 클러스터에 그치지 않았다. 여러 GKE 클러스터에서 외부 접속이 막혔고, 문제를 추적하니 새로 업그레이드된 워커 노드로 좁혀졌다. 업그레이드 직후 이 노드들로 들어오고 나가는 트래픽이 0으로 떨어졌다.
로드밸런서 헬스 체크가 실패하고 있었다. kube-proxy 로그에는 iptables 규칙, 특히 IPv6 규칙을 제대로 적용하지 못한다는 오류가 계속 나왔다. Warning: Extension MARK revision 0 not supported, missing kernel module? ip6tables-restore v1.8.9 (nf_tables): unknown option "--xor-mark"
워크로드가 IPv6 를 쓰지 않아도 GKE 노드는 기본으로 IPv6 iptables 규칙을 처리한다. 팀은 다른 이미지 버전 1.32.3-gke.1927002 로 올려 보았지만 같은 커널 문제가 있었다.
증상 ? 서비스 중단
원인 ? 업그레이드로 깨진 호환성
OpsGenie 알림으로 알았다. ClickHouse 클러스터 하나에서 쿼리, 지표, 고객 접속 로그가 모두 끊겼고, 곧 다른 클러스터들도 같은 상태가 됐다.
관리형 Kubernetes 의 노드 자동 업그레이드는 사용자가 검증하지 않은 커널을 운영 노드에 올린다. 클라우드 업체의 이미지 검증만 믿으면 이런 회귀를 막지 못한다. IPv6 를 쓰지 않아도 kube-proxy 는 IPv6 iptables 규칙을 적용하므로, 그 적용이 실패하면 로드밸런서 헬스 체크도 실패해 모든 인그레스가 끊길 수 있다. 영향받은 버전이 확인되면 아직 업그레이드되지 않은 클러스터의 업그레이드부터 멈춰야 피해가 번지지 않는다. Altinity 는 영향받은 사용자에게 externalTrafficPolicy: Cluster 로 바꿔 kube-proxy 헬스 체크를 끄고, 운영 노드 이미지를 cos_containerd 로 바꾸고, 고쳐진 이미지가 확인될 때까지 자동 업그레이드를 멈추라고 권한다.
같은 원인 · 공통 노드 운영체제 이미지
같은 원인 · 공통 리눅스 커널
같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 노드 운영체제 이미지
같은 원인 · 공통 노드 운영체제 이미지