Kubernetes v1.37: 메모리 QoS 베타 버전 업그레이드
Kubernetes v1.37은 Memory QoS의 Beta 졸업을 표시하며, 이는 cgroup v2를 사용하는 Linux 노드에서 기본적으로 활성화됩니다. 이 기능은 커널의 메모리 컨트롤러를 활용하여 컨테이너 메모리 관리를 개선합니다. v1.22에서 Alpha로 처음 도입되었으며, v1.36에서 계층적 메모리 예약을 통해 기능이 확장되었습니다. Beta 승격은 MemoryQoS 기능 게이트가 명시적인 구성 변경 없이 모든 v1.37 kubelet에서 활성화됨을 의미합니다. 중요한 점은 기본 kubelet 구성은 사용자가 명시적으로 선택하지 않는 한 메모리 스로틀링 또는 예약을 활성화하지 않는다는 것입니다.사용자는 kubelet 구성 필드를 통해 특정 Memory QoS 동작을 활성화할 수 있습니다. 예를 들어, memoryThrottlingFactor를 설정하면 Burstable 및 BestEffort 컨테이너에 대한 memory.high 스로틀링이 활성화됩니다. 또는 memoryReservationPolicy를 TieredReservation으로 구성하면 memory.min 및 memory.low를 통한 계층적 메모리 보호가 활성화됩니다. v1.37의 중요한 변경 사항은 memoryThrottlingFactor의 기본값이 0.9에서 null로 변경되어 업그레이드 시 기존 클러스터에 대한 자동 메모리 스로틀링을 방지한다는 것입니다. 이는 명시적으로 구성하지 않는 한 런타임 동작이 일관되게 유지되도록 보장합니다.Memory QoS를 구성하기 위해 클러스터 운영자는 스로틀링을 위해 memoryThrottlingFactor를, 계층적 예약을 위해 memoryReservationPolicy를 설정할 수 있습니다. 둘 다 동시에 또는 독립적으로 활성화할 수 있습니다. 기능 게이트를 false로 설정하고 해당 kubelet 구성을 조정하여 Memory QoS를 완전히 비활성화할 수 있습니다. 알려진 제한 사항은 메모리 예약이 노드 전체에 적용되어 원하는 동작에 관계없이 모든 파드에 일관되게 적용되어 개별 파드 제어에 영향을 미친다는 것입니다. Memory QoS의 다음 개발 단계는 일반 공급(General Availability)으로의 졸업이며, 지속적인 피드백이 향후 조정을 형성할 것입니다.