RSS DEV 커뮤니티

쿠버네티스 지속성 시리즈 파트 1: 노드 업그레이드 후 인그레스가 사라졌을 때

정기적인 GKE 노드 업그레이드 후 모니터링 대시보드가 사라지면서 리소스 관리의 문제가 드러났습니다. NGINX Ingress 컨트롤러 pod가 축출 및 재시작되었지만 Grafana ingress 리소스가 사라져 서비스에 접근할 수 없게 되었습니다. 조사 결과, ingress가 사라진 이유는 TLS 시크릿이 누락되었고, admission webhook 실패 때문이었습니다. TLS 시크릿은 수동으로 생성되었으며 어떤 컨트롤러에 의해서도 관리되지 않았기 때문에, 컨트롤러가 재시작되는 동안 webhook이 ingress를 거부했습니다. 이 문제는 어떤 조정 메커니즘 없이 `kubectl apply`를 사용한 데서 비롯되었으며, ingress를 다시 생성하는 데 실패했습니다. 해결책은 릴리스 상태를 저장하고 누락된 리소스를 다시 생성할 수 있는 Helm 차트로 마이그레이션하는 것이었습니다. Helm은 일관된 리소스 관리를 보장하고 종속성을 효율적으로 관리합니다. 유사한 문제는 연산자를 사용하여 시크릿을 관리하고 admission webhook을 이해함으로써 방지할 수 있습니다. Helm으로 관리되는 리소스, 연산자로 관리되는 리소스, 그리고 소유자 참조가 있는 리소스는 pod 축출 후에도 유지됩니다. 수동으로 적용된 리소스와 누락된 종속성을 참조하는 리소스는 더 취약합니다. 이 사건은 Helm, Kustomize 또는 GitOps와 같은 도구를 프로덕션 리소스에 사용하는 것의 중요성을 강조했습니다.
favicon
dev.to
Kubernetes Persistence Series Part 1: When Our Ingress Vanished After a Node Upgrade
기사 이미지: 쿠버네티스 지속성 시리즈 파트 1: 노드 업그레이드 후 인그레스가 사라졌을 때