33.3. 네임스페이스 지정 sysctl 및 노드 수준 sysctl 비교
다수의 sysctl 은 현재 Linux 커널에 네임스페이스가 지정됩니다. 즉 노드의 각 Pod에 개별적으로 설정할 수 있습니다. Kubernetes 내의 Pod 컨텍스트에서 sysctl에 액세스하려면 네임스페이스를 지정해야 합니다.
다음 sysctl은 네임스페이스로 알려져 있습니다.
- kernel.shm*
- kernel.msg*
- kernel.sem
- fs.mqueue.*
또한 net.* 그룹에 있는 대부분의 sysctl은 네임스페이스로 알려져 있습니다. 해당 네임스페이스 채택은 커널 버전 및 배포자에 따라 다릅니다.
시스템에서 네임스페이스가 지정된 net.* sysctl을 확인하려면 다음 명령을 실행합니다.
$ podman run --rm -ti docker.io/fedora \ /bin/sh -c "dnf install -y findutils && find /proc/sys/ \ | grep -e /proc/sys/net"
네임스페이스가 지정되지 않은 sysctl은 노드 수준 이라고 하며 노드의 기본 Linux 배포(예: /etc/sysctls.conf 파일 수정)를 통해 또는 권한 있는 컨테이너에 DaemonSet을 사용하여 클러스터 관리자가 수동으로 설정해야 합니다.
특수 sysctl이 있는 노드를 테인트로 표시하는 것이 좋습니다. 이러한 sysctl 설정이 필요한 노드에만 Pod를 예약하십시오. 테인트 및 허용 오차 기능을 사용하여 노드를 표시합니다.