6.9.2. 프로세스 ID 제한 이해
PID(프로세스 ID)는 시스템에서 현재 실행 중인 각 프로세스 또는 스레드에 Linux 커널에서 할당한 고유 식별자입니다. 시스템에서 동시에 실행할 수 있는 프로세스 수는 Linux 커널의 4,194,304로 제한됩니다. 이 숫자는 메모리, CPU 및 디스크 공간과 같은 다른 시스템 리소스에 대한 제한된 액세스의 영향을 받을 수도 있습니다.
OpenShift Container Platform에서 클러스터에서 작업을 예약하기 전에 PID(프로세스 ID) 사용에 대해 지원되는 다음 두 가지 제한 사항을 고려하십시오.
Pod당 최대 PID 수입니다.
OpenShift Container Platform 4.11 이상에서는 기본값은 4,096입니다. 이 값은 노드에 설정된
podPidsLimit매개변수에 의해 제어됩니다.chroot환경에서 다음 명령을 실행하여 노드의 현재 PID 제한을 볼 수 있습니다.sh-5.1# cat /etc/kubernetes/kubelet.conf | grep -i pids출력 예
"podPidsLimit": 4096,KubeletConfig오브젝트를 사용하여podPidsLimit을 변경할 수 있습니다. " kubelet 매개변수를 편집하기 위해 KubeletConfig CR 생성"을 참조하십시오.컨테이너는 상위 Pod의
podPidsLimit값을 상속하므로 커널은 두 제한 중 더 낮은 값을 적용합니다. 예를 들어 컨테이너 PID 제한이 최대값으로 설정되어 있지만 Pod PID 제한이4096인 경우 Pod에 있는 각 컨테이너의 PID 제한이 4096으로 제한됩니다.노드당 최대 PID 수입니다.
기본값은 노드 리소스에 따라 다릅니다. OpenShift Container Platform에서 이 값은 kubelet 구성의
systemReserved매개변수에 의해 제어되며, 노드의 총 리소스에 따라 각 노드에 PID를 예약합니다. 자세한 내용은 "OpenShift Container Platform 클러스터의 노드에 대한 리소스 할당"을 참조하십시오.
Pod가 Pod당 허용되는 최대 PID 수를 초과하면 Pod가 올바르게 작동을 중지하고 노드에서 제거될 수 있습니다. 자세한 내용은 제거 신호 및 임계값에 대한 Kubernetes 문서를 참조하십시오.
노드가 노드당 허용되는 최대 PID 수를 초과하면 새 프로세스에 PID를 할당할 수 없으므로 노드가 불안정해질 수 있습니다. 추가 프로세스를 생성하지 않고 기존 프로세스를 완료할 수 없는 경우 전체 노드를 사용할 수 없게 되고 재부팅이 필요할 수 있습니다. 이 경우 실행 중인 프로세스 및 애플리케이션에 따라 데이터가 손실될 수 있습니다. 고객 관리자 및 Red Hat 사이트 안정성 엔지니어링은 이 임계값에 도달하면 알림을 받으며 작업자 노드에 PIDPressure 경고가 표시됩니다.
6.9.2.1. OpenShift Container Platform Pod에 대해 더 높은 프로세스 ID 제한을 설정하는 위험 링크 복사링크가 클립보드에 복사되었습니다!
Pod의 podPidsLimit 매개변수는 해당 Pod에서 동시에 실행할 수 있는 최대 프로세스 및 스레드 수를 제어합니다.
podPidsLimit 의 값을 기본값인 4,096에서 최대 16,384로 늘릴 수 있습니다. podPidsLimit 을 변경하려면 영향을 받는 노드를 재부팅해야 하므로 이 값을 변경하면 애플리케이션의 다운타임이 발생할 수 있습니다.
노드당 다수의 Pod를 실행 중이고 노드에 podPidsLimit 값이 높은 경우 노드의 PID 최대값이 초과될 위험이 있습니다.
노드의 PID 최대값을 초과하지 않고 단일 노드에서 동시에 실행할 수 있는 최대 Pod 수를 찾으려면 podPidsLimit 값으로 3,650,000을 나눕니다. 예를 들어 podPidsLimit 값이 16,384이고 Pod가 프로세스 ID 수에 가깝게 사용할 것으로 예상되는 경우 단일 노드에서 222 Pod를 안전하게 실행할 수 있습니다.
memory, CPU 및 사용 가능한 스토리지는 podPidsLimit 값이 적절하게 설정된 경우에도 동시에 실행할 수 있는 최대 Pod 수를 제한할 수 있습니다.