리눅스 커널 버전 요구 사항

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

파드 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 이전 버전은 권장하지 않는다.

PSI(Pressure Stall Information)

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 카테고리에서 릴리스 목록을 참고한다.

다음 내용

  • 자세한 내용은 sysctl을 참고한다.
  • kube-proxy를 nftables 모드로 실행할 수 있다.
  • cgroup v2에서 더 많은 정보를 확인한다.

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

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