피드로 돌아가기
Kubernetes BlogKubernetes Blog
Infrastructure

Kubernetes v1.35가 Cloud Controller Manager의 경로 조정을 고정 간격 폴링에서 watch 기반 informer로 변경하여 불필요한 클라우드 제공자 API 요청 제거

Kubernetes v1.35: Watch Based Route Reconciliation in the Cloud Controller Manager

2025년 12월 30일5intermediate

Context

Kubernetes v1.34까지 Cloud Controller Manager(CCM)의 경로 컨트롤러는 고정된 간격으로 경로를 조정했다. 이로 인해 경로 변경이 없는 상황에서도 클라우드 제공자에 대한 불필요한 API 요청이 발생했다.

Technical Solution

  • CloudControllerManagerWatchBasedRoutesReconciliation 기능 게이트를 k8s.io/cloud-provider에 알파 단계로 도입: --feature-gate=CloudControllerManagerWatchBasedRoutesReconciliation=true 플래그로 활성화
  • Watch 기반 informer 메커니즘으로 전환: 노드 추가/삭제 또는 .spec.podCIDRs, .status.addresses 필드 업데이트 시에만 경로 조정 루프 트리거
  • 추가 조정을 12시간~24시간의 무작위 간격으로 수행: 컨트롤러 시작 시점에 결정
  • 조정 루프 내부 로직은 기존과 동일: 기존 경로 구성 동작에 대한 사용자 영향 최소화

Key Takeaway

경로 조정 로직은 유지하면서 API 호출 빈도만 변경한 설계는 하위 호환성을 보장하면서도 불필요한 외부 API 의존성을 제거하는 방식이다. Watch 기반 메커니즘은 이미 k8s.io/cloud-provider 라이브러리의 다른 컨트롤러들이 사용 중인 표준 패턴으로, 일관성 있는 플랫폼 설계를 보여준다.


Kubernetes 기반 클라우드 인프라를 운영하는 팀에서 CCM 구현체에 CloudControllerManagerWatchBasedRoutesReconciliation 기능 게이트를 활성화하면, 클라우드 제공자 API 호출 횟수를 고정 폴링에서 이벤트 기반 호출로 전환하여 불필요한 API 비용과 레이턴시를 줄일 수 있다.

원문 읽기