1장. 튜닝 플러그인을 사용하여 시스템 제어 및 인터페이스 속성 구성


OpenShift Container Platform에서 런타임 시 커널 매개변수 및 인터페이스 속성을 수정하려면 CNI(Container Network Interface) 메타 플러그인을 사용할 수 있습니다. 플러그인은 기본 CNI 플러그인과 함께 체인에서 작동하며, 무차별 모드, 멀티 캐스트 모드, MTU 및 MAC 주소와 같은 sysctl 및 인터페이스 속성을 변경할 수 있습니다.

CNI 플러그인

1.1. 튜닝 CNI를 사용하여 시스템 제어 구성

OpenShift Container Platform에서 인터페이스 수준 네트워크 sysctl을 구성하려면 네트워크 연결 정의에 CNI 메타 플러그인을 사용할 수 있습니다. ICMP 리디렉션 패킷을 수락하고 전송하도록 net.ipv4.conf.IFNAME.accept_redirects sysctl을 구성합니다.

프로세스

  1. 다음 콘텐츠를 사용하여 tuning-example.yaml 과 같은 네트워크 연결 정의를 생성합니다.

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: <name>
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "<name>",
        "plugins": [{
           "type": "<main_CNI_plugin>"
          },
          {
           "type": "tuning",
           "sysctl": {
                "net.ipv4.conf.IFNAME.accept_redirects": "1"
            }
          }
         ]
    }

    다음과 같습니다.

    metadata.name
    생성할 추가 네트워크 연결의 이름을 지정합니다. 이름은 지정된 네임스페이스 내에서 고유해야 합니다.
    metadata.namespace
    오브젝트가 연결된 네임스페이스를 지정합니다.
    spec.config.cniVersion
    CNI 사양 버전을 지정합니다.
    spec.config.name
    구성 이름을 지정합니다. 구성 이름과 네트워크 연결 정의의 name 값과 일치하는 것이 좋습니다.
    spec.config.plugins.type
    구성할 기본 CNI 플러그인의 이름을 지정합니다.
    spec.config.plugins.tuning.sysctl
    설정할 sysctl을 지정합니다. 인터페이스 이름은 IFNAME 토큰으로 표시되고 런타임 시 인터페이스의 실제 이름으로 교체됩니다.

    네트워크 연결 정의 예

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: tuningnad
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "tuningnad",
        "plugins": [{
          "type": "bridge"
          },
          {
          "type": "tuning",
          "sysctl": {
             "net.ipv4.conf.IFNAME.accept_redirects": "1"
            }
        }
      ]
    }'

  2. 다음 명령을 실행하여 YAML을 적용합니다.

    $ oc apply -f tuning-example.yaml

    출력 예

    networkattachmentdefinition.k8.cni.cncf.io/tuningnad created

  3. 다음과 유사한 네트워크 연결 정의를 사용하여 examplepod.yaml 과 같은 Pod를 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: tunepod
      namespace: default
      annotations:
        k8s.v1.cni.cncf.io/networks: tuningnad
    spec:
      containers:
      - name: podexample
        image: centos
        command: ["/bin/bash", "-c", "sleep INF"]
        securityContext:
          runAsUser: 2000
          runAsGroup: 3000
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault

    다음과 같습니다.

    metadata.annotations.k8s.v1.cni.cncf.io/networks
    구성된 NetworkAttachmentDefinition 의 이름을 지정합니다.
    spec.containers.securityContext.runAsUser
    컨테이너가 실행되는 사용자 ID를 지정합니다.
    spec.containers.securityContext.runAsGroup
    컨테이너가 실행되는 기본 그룹 ID를 지정합니다.
    spec.containers.securityContext.allowPrivilegeEscalation
    Pod에서 권한 에스컬레이션을 허용하도록 요청할 수 있는지 여부를 지정합니다. 지정되지 않은 경우 기본값은 true입니다. 이 부울은 no_new_privs 플래그가 컨테이너 프로세스에 설정되는지 여부를 직접 제어합니다.
    spec.containers.securityContext.capabilities
    전체 루트 액세스 권한을 부여하지 않고 권한 있는 작업을 지정합니다. 이 정책은 모든 기능이 Pod에서 삭제되도록 합니다.
    spec.securityContext.runAsNonRoot: true
    컨테이너가 0 이외의 UID가 있는 사용자로 실행되도록 지정합니다.
    spec.securityContext.seccompProfile
    Pod 또는 컨테이너 워크로드에 대한 기본 seccomp 프로필을 지정합니다.
  4. 다음 명령을 실행하여 yaml을 적용합니다.

    $ oc apply -f examplepod.yaml
  5. 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.

    $ oc get pod

    출력 예

    NAME      READY   STATUS    RESTARTS   AGE
    tunepod   1/1     Running   0          47s

  6. 다음 명령을 실행하여 Pod에 로그인합니다.

    $ oc rsh tunepod
  7. 구성된 sysctl 플래그의 값을 확인합니다. 예를 들어 다음 명령을 실행하여 net.ipv4.conf.net1.accept_redirects 값을 찾습니다.

    sh-4.4# sysctl net.ipv4.conf.net1.accept_redirects

    예상 출력

    net.ipv4.conf.net1.accept_redirects = 1

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동