Kubernetes 클러스터에서 VIP 연결 문제 해결

limes22·2024년 10월 11일

1. 문제 상황

Kubernetes 마스터 노드(1, 2, 3)에서 VIP(예: 16443 포트)로 telnet 연결이 되지 않는 문제가 발생함.

keepalived, haproxy, containerd, kubelet 서비스를 재시작한 후 VIP로의 연결이 다시 가능해짐.

2. 원인 분석

2.1 Keepalived의 장애 복구

Keepalived는 VIP를 관리하고 마스터 노드 간에 고가용성을 제공하는 역할을 합니다.

하나 이상의 마스터 노드에서 Keepalived가 비정상적인 상태가 되었거나 VIP를 유지하지 못하는 경우 VIP로의 연결이 실패할 수 있습니다.

모든 노드에서 Keepalived를 재시작함으로써 VIP가 정상적으로 다시 활성화되고 해당 노드로 트래픽이 라우팅되었을 가능성이 있습니다.

2.2 HAProxy 설정 및 동기화 문제

HAProxy는 VIP를 통해 들어오는 트래픽을 여러 노드에 분산시키는 로드 밸런서 역할을 합니다.

HAProxy 설정에 문제가 있거나, 설정 변경 후 적용되지 않았다면 트래픽이 올바르게 분산되지 않을 수 있습니다.

HAProxy를 재시작하면서 설정이 다시 적용되고 VIP에 대한 로드 밸런싱이 정상화되었을 가능성이 있습니다.

2.3 Containerd 및 Kubelet의 상태 문제

Containerd와 Kubelet은 컨테이너 관리와 Kubernetes 워커 노드의 핵심 서비스입니다.

이들이 비정상적인 상태라면 Kubernetes 마스터 노드에서 필요한 컨테이너들이 실행되지 않아 VIP 접근이 제한될 수 있습니다.

Kubelet이 제대로 작동하지 않으면 마스터 노드의 주요 서비스들이 정상적으로 동작하지 않게 되어 API 서버 접근이 차단될 수 있습니다.

모든 노드에서 Containerd와 Kubelet을 재시작함으로써 서비스가 정상적으로 복구되었습니다.

2.4 마스터 노드 간의 상태 불일치

세 개의 마스터 노드에서 Keepalived, HAProxy, Kubelet 등의 상태가 일치하지 않거나 일부 노드가 장애 상태였을 가능성이 있습니다.

모든 마스터에서 서비스를 재시작하면서 클러스터의 상태가 다시 동기화되어 VIP 접근이 가능해졌습니다.

2.5 네트워크 문제 또는 세션 상태

네트워크 경로에서 문제가 있었거나, Keepalived 및 HAProxy 간의 세션이 꼬였을 가능성도 있습니다.

모든 관련 서비스를 재시작하면서 네트워크 상태나 세션이 초기화되어 문제가 해결되었을 수 있습니다.

3. 해결 방법 매뉴얼

다음 절차를 따라 VIP 연결 문제를 해결할 수 있습니다:

서비스 재시작

systemctl restart keepalived
systemctl restart haproxy
systemctl restart containerd
systemctl restart kubelet

모든 마스터 노드에서 위 명령어를 실행하여 서비스들을 재시작합니다.

VIP 상태 확인

각 마스터 노드에서 VIP가 올바르게 활성화되었는지 확인합니다.

ip addr show
VIP가 각 마스터 노드 중 하나에 올바르게 할당되어 있는지 확인합니다.

HAProxy 설정 확인

/etc/haproxy/haproxy.cfg 파일을 열어 VIP 트래픽이 올바르게 백엔드 노드로 분산되고 있는지 확인합니다.

설정을 변경한 경우, 설정 파일을 다시 로드하거나 HAProxy를 재시작합니다.

systemctl restart haproxy

네트워크 및 방화벽 확인

네트워크 방화벽 규칙이 VIP와 관련된 포트를 차단하고 있지 않은지 확인합니다.

각 노드에서 iptables나 Proxmox 방화벽 설정을 점검하여 VIP 접근이 허용되어 있는지 확인합니다.

서비스 상태 점검

각 노드에서 Containerd와 Kubelet 서비스가 정상적으로 실행 중인지 확인합니다.

systemctl status containerd
systemctl status kubelet
profile
GPU 인프라 / MLOps 엔지니어 오수진입니다. 쿠버네티스 기반 GPU 스케줄링(HAMi·KAI·Volcano)과 LLM 서빙 인프라를 다룹니다.

0개의 댓글