6.9.2. Pod의 sysctl 설정

Pod의 securityContext를 사용하여 Pod에 sysctl을 설정할 수 있습니다. securityContext는 동일한 Pod의 모든 컨테이너에 적용됩니다.

안전한 sysctl은 기본적으로 허용됩니다. 안전하지 않은 sysctl이 있는 Pod는 클러스터 관리자가 해당 노드에 대해 안전하지 않은 sysctl을 명시적으로 활성화하지 않는 한 어떠한 노드에서도 시작되지 않습니다. 노드 수준 sysctl과 마찬가지로 노드에 테인트 및 허용 오차 기능을 사용하여 해당 Pod를 올바른 노드에 예약합니다.

다음 예제에서는 Pod securityContext 를 사용하여 안전한 sysctl kernel.shm_rmid_forced 와 안전하지 않은 sysctl인 net.core.somaxconn 및 kernel .msgmax 를 설정합니다. 사양에서는 안전안전하지 않은 sysctl이 구분되지 않습니다.

주의

운영 체제가 불안정해지는 것을 방지하기 위해 sysctl 매개변수 수정이 미치는 영향을 파악한 후에만 수정하십시오.

프로세스

안전한 sysctl 및 안전하지 않은 sysctl을 사용하려면 다음을 수행합니다.

  1. 다음 예제와 같이 Pod를 정의하는 YAML 파일을 수정하고 securityContext 사양을 추가합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: sysctl-example
    spec:
      securityContext:
        sysctls:
        - name: kernel.shm_rmid_forced
          value: "0"
        - name: net.core.somaxconn
          value: "1024"
        - name: kernel.msgmax
          value: "65536"
      ...
  2. Pod를 생성합니다.

    $ oc apply -f <file-name>.yaml

    안전하지 않은 sysctl을 노드에 사용할 수 없는 경우 Pod는 예약되지만 배포되지는 않습니다.

    $ oc get pod

    출력 예

    NAME        READY   STATUS            RESTARTS   AGE
    hello-pod   0/1     SysctlForbidden   0          14s