RATATOSKRATATOSK
로그인

Karmada

v1.18.0Orchestration & Management
2026년 5월 30일

v1.18.0은 하이브리드 클라우드 버스트 스케줄링을 위한 overflow cluster affinities와 리소스 이중 할당 방지 메커니즘을 추가합니다. v1.18.x로 올리기 전에 반드시 v1.17.3+를 먼저 적용해야 합니다.

  • breakingv1.18.x 업그레이드 전 v1.17.3+ 필수 적용

    v1.18.x로 올리기 전에 반드시 v1.17.3+ 상태여야 합니다. 이 순서를 건너뛰면 operator 업그레이드가 실패합니다. `karmadactl version`으로 현재 버전을 확인하고, v1.17.3+가 아니라면 먼저 해당 버전으로 올리세요.

  • breakingDeprecated gRPC 필드 교체 — 커스텀 플러그인 수정 필요

    karmada-scheduler-estimator의 gRPC 필드 여러 개가 deprecated 처리됐습니다. `resourceRequest` → `resourceRequestBytes`, `nodeAffinity` → `nodeAffinityBytes`, `tolerations` → `tolerationsBytes`로 교체됩니다. 커스텀 estimator 플러그인이나 이 필드를 직접 읽는 툴링이 있다면 업그레이드 전에 수정하세요. 기존 필드는 v1.18에서는 아직 남아 있지만 이후 릴리스에서 제거됩니다.

  • breaking삭제된 플래그 및 메트릭 레이블 — 기존 설정 충돌 주의

    karmada-controller-manager에서 `--cluster-lease-duration`, `--cluster-lease-renew-interval-fraction` 플래그가 삭제됐습니다. Karmada Init Configuration의 `Etcd.Local.InitImage`도 제거됐습니다. 배포 스크립트나 Helm values에 이 항목들이 있으면 업그레이드 전에 제거하세요. 그렇지 않으면 컴포넌트 기동에 실패합니다. Prometheus 대시보드도 확인하세요 — `cluster`, `cluster_name` 레이블이 사라지고 `member_cluster`로 바뀌었습니다.

  • securityAlpine 베이스 이미지 3.23.4로 업데이트

    기본 Alpine 이미지가 3.23.3에서 3.23.4로 올라갔습니다. 일반 업그레이드 외에 별도 조치는 없지만, 이미지 digest를 고정해 쓰는 환경이라면 digest 값을 업데이트하세요.

  • enhancement스케줄러 오라우팅 및 eviction 누락 버그 수정

    스케줄러 버그 두 건이 이번 릴리스에서 수정됐습니다. 첫째, 클러스터 레플리카가 부족한 binding이 5분 타이머 큐 대신 exponential backoff(1~10초) 큐로 잘못 라우팅되어 워크로드가 멈춘 것처럼 보이는 문제입니다. 둘째, 여러 컨트롤러가 동일한 ResourceBinding을 동시에 수정할 때 graceful eviction 태스크가 조용히 누락되어 실패 클러스터에서 워크로드가 대피되지 않는 race condition입니다. 이런 증상을 겪었다면 v1.18.0으로 업그레이드 후 해당 워크로드 상태를 재확인하세요.

  • enhancement고부하 환경에서 SchedulingOvercommitProtection 활성화 검토

    SchedulingOvercommitProtection feature gate(기본값: 비활성)는 연속 스케줄링 요청 사이에 클러스터 리소스를 과잉 할당하는 문제를 방지합니다. Pod가 노드에 바인딩되기 전에 동일 클러스터에 중복 스케줄링이 발생하는 환경에서 효과적입니다. staging에서 검증 후 karmada-scheduler와 karmada-scheduler-estimator 양쪽에 `--feature-gates=SchedulingOvercommitProtection=true`를 설정하세요.

  • enhancement하이브리드 클라우드 버스트 스케줄링용 Overflow Cluster Affinities

    PropagationPolicy/ClusterPropagationPolicy에 `overflowAffinities` 필드가 추가됐습니다. 1순위 클러스터 그룹이 소진되면 선언 순서대로 보조 그룹으로 레플리카를 넘기고, 스케일다운 시에는 보조 그룹부터 먼저 회수합니다. IDC 우선 + 퍼블릭 클라우드 버스트 패턴에 적합합니다. 기존 정책에는 영향 없고, 이 필드를 추가한 경우에만 동작이 바뀝니다.

주요 변경 (6)

  • 필수 업그레이드 경로: v1.18.x 적용 전 v1.17.3+ 먼저 적용 (karmada-operator-chart 요건)
  • PropagationPolicy에 OverflowClusterAffinities API 추가 — 1순위 클러스터 그룹 소진 시 보조 그룹으로 자동 확장, 스케일다운 시 역순 회수
  • SchedulingOvercommitProtection feature gate (기본값: off) — 연속 스케줄링 시 assumed workload를 캐싱해 리소스 이중 할당 방지
  • karmada-scheduler-estimator gRPC 필드 deprecated: resourceRequest/nodeAffinity/tolerations → *Bytes 필드로 교체 (Kubernetes 1.35+ 대응)
  • 제거된 항목: --cluster-lease-duration/--cluster-lease-renew-interval-fraction 플래그, cluster/cluster_name Prometheus 레이블(→ member_cluster), Etcd.Local.InitImage 설정
  • 주요 버그 수정: binding backoffQ 오라우팅, 동시 컨트롤러 수정 시 eviction 태스크 누락, ClusterTaintPolicy 동시 health taint 누락