리눅스 커널 버전 요구 사항

참고: 이 섹션은 쿠버네티스에 필요한 기능을 제공하는 써드파티 프로젝트와 관련이 있다. 쿠버네티스 프로젝트 작성자는 써드파티 프로젝트에 책임이 없다. 이 페이지는 CNCF 웹사이트 가이드라인에 따라 프로젝트를 알파벳 순으로 나열한다. 이 목록에 프로젝트를 추가하려면 변경사항을 제출하기 전에 콘텐츠 가이드를 읽어본다.

많은 기능이 특정 커널 기능에 의존하며 최소 커널 버전 요구 사항이 존재한다. 그러나 특정 운영 체제 배포판에서는 커널 버전 번호에만 의존하는 것이 충분하지 않을 수 있다. RHEL, 우분투, SUSE와 같은 배포판의 메인테이너들이 선택된 기능을 이전 커널 릴리스에 (이전 커널 버전을 유지하면서) 백포트(backport)하는 경우가 많기 때문이다.

파드 sysctl

리눅스에서 sysctl() 시스템 콜은 런타임에 커널 파라미터를 설정한다. 이러한 파라미터를 설정하는 데 사용할 수 있는 sysctl이라는 커맨드라인 툴이 있으며, 많은 파라미터가 proc 파일시스템을 통해 노출된다.

일부 sysctl은 커널 버전이 충분히 최신인 경우에만 사용할 수 있다.

다음 sysctl은 최소 커널 버전 요구 사항이 있으며, 안전한 집합(safe set)에서 지원된다.

  • net.ipv4.ip_local_reserved_ports (쿠버네티스 1.27부터, 커널 3.16+ 필요);
  • net.ipv4.tcp_keepalive_time (쿠버네티스 1.29부터, 커널 4.5+ 필요);
  • net.ipv4.tcp_fin_timeout (쿠버네티스 1.29부터, 커널 4.6+ 필요);
  • net.ipv4.tcp_keepalive_intvl (쿠버네티스 1.29부터, 커널 4.5+ 필요);
  • net.ipv4.tcp_keepalive_probes (쿠버네티스 1.29부터, 커널 4.5+ 필요);
  • net.ipv4.tcp_syncookies (커널 4.6+부터 네임스페이스 지원).
  • net.ipv4.tcp_rmem (쿠버네티스 1.32부터, 커널 4.15+ 필요).
  • net.ipv4.tcp_wmem (쿠버네티스 1.32부터, 커널 4.15+ 필요).
  • net.ipv4.vs.conn_reuse_mode (ipvs 프록시 모드에서 사용, 커널 4.1+ 필요);

kube proxy nftables 프록시 모드

쿠버네티스 1.35에서, kube-proxy의 nftables 모드는 nft 커맨드라인 툴의 버전 1.0.1 이상과 커널 5.13 이상이 필요하다.

테스트/개발 목적으로는 kube-proxy 설정에서 nftables.skipKernelVersionCheck 옵션을 설정하면 커널 5.4까지 낮춰 사용할 수 있다. 그러나 시스템의 다른 nftables 사용자와 문제를 일으킬 수 있으므로 프로덕션 환경에서는 권장하지 않는다.

버전 2 컨트롤 그룹(control group)

쿠버네티스 v1.31부터 cgroup v1 지원은 유지 관리 모드이며, cgroup v2 사용을 권장한다. 리눅스 5.8에서는 편의를 위해 시스템 레벨 cpu.stat 파일이 루트 cgroup에 추가되었다.

runc 문서에서는 freezer 부재로 인해 커널 5.2 이전 버전은 권장하지 않는다.

Pressure Stall Information (PSI)

PSI(Pressure Stall Information)는 리눅스 커널 버전 4.20 이상에서 지원되지만, 다음 설정이 필요하다.

  • 커널이 CONFIG_PSI=y 옵션으로 컴파일되어야 한다. 대부분의 최신 배포판은 이를 기본적으로 활성화한다. zgrep CONFIG_PSI /proc/config.gz를 실행하여 커널 설정을 확인할 수 있다.
  • 일부 리눅스 배포판은 PSI를 커널에 컴파일하지만 기본적으로 비활성화할 수 있다. 이 경우, 커널 커맨드라인에 psi=1 파라미터를 추가하여 부트 시 활성화해야 한다.

기타 커널 요구 사항

일부 기능은 새로운 커널 기능에 의존할 수 있으며 특정 커널 요구 사항이 있다.

  1. 재귀적 읽기 전용 마운트: 리눅스 커널 v5.12에 추가된 mount_setattr(2)를 사용하여 AT_RECURSIVE 플래그와 함께 MOUNT_ATTR_RDONLY 속성을 적용하여 구현된다.
  2. 파드 사용자 네임스페이스 지원은 KEP-127에 따라 최소 커널 버전 6.5+가 필요하다.
  3. 노드 시스템 스왑(swap)의 경우, noswap으로 설정된 tmpfs는 커널 6.3 이전 버전은 지원되지 않는다.

리눅스 커널 장기 유지 관리

활성 커널 릴리스는 kernel.org에서 확인할 수 있다.

이전 커널 트리에 대한 버그 수정을 백포트하기 위해 보통 여러 장기 유지 관리(long term maintenance) 커널 릴리스가 제공된다. 이러한 커널에는 중요한 버그 수정만 적용되며, 특히 오래된 트리의 경우 자주 릴리스되지 않는다. 리눅스 커널 웹사이트의 Longterm 카테고리에서 릴리스 목록을 참고한다.

다음 내용


이 페이지는 쿠버네티스가 필요로 하는 기능을 제공하는 써드파티 프로젝트 또는 제품에 대해 언급하고 있습니다. 쿠버네티스 프로젝트 저자들은 이러한 써드파티 프로젝트 또는 제품에 대해 책임지지 않습니다. CNCF 웹사이트 가이드라인에서 더 자세한 내용을 확인합니다.

다른 써드파티 링크를 추가하는 변경을 제안하기 전에, 컨텐츠 가이드를 확인해야 합니다.