14.2. 튜닝 CNI를 사용하여 모든 멀티 캐스트 모드 활성화


CNI(Container Network Interface) 메타 플러그인을 사용하여 all-multicast 모드를 활성화할 수 있습니다.

다음 절차에서는 all-multicast 모드를 활성화하도록 튜닝 CNI를 구성하는 방법을 설명합니다.

프로세스

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

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: <name> 1
      namespace: default 2
    spec:
      config: '{
        "cniVersion": "0.4.0", 3
        "name": "<name>", 4
        "plugins": [{
           "type": "<main_CNI_plugin>" 5
          },
          {
           "type": "tuning", 6
           "allmulti": true 7
            }
          }
         ]
    }
    1
    생성할 추가 네트워크 연결의 이름을 지정합니다. 이름은 지정된 네임스페이스 내에서 고유해야 합니다.
    2
    오브젝트가 연결된 네임스페이스를 지정합니다.
    3
    CNI 사양 버전을 지정합니다.
    4
    구성 이름을 지정합니다. 구성 이름을 네트워크 연결 정의의 name 값과 일치시킵니다.
    5
    구성할 기본 CNI 플러그인의 이름을 지정합니다.
    6
    CNI 메타 플러그인의 이름을 지정합니다.
    7
    인터페이스의 all-multicast 모드를 변경합니다. 활성화하면 네트워크의 모든 멀티 캐스트 패킷이 인터페이스에서 수신됩니다.

    YAML 파일의 예는 다음과 같습니다.

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: setallmulti
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "setallmulti",
        "plugins": [
          {
            "type": "bridge"
          },
          {
            "type": "tuning",
            "allmulti": true
          }
        ]
      }'
  2. 다음 명령을 실행하여 YAML 파일에 지정된 설정을 적용합니다.

    $ oc apply -f tuning-allmulti.yaml

    출력 예

    networkattachmentdefinition.k8s.cni.cncf.io/setallmulti created

  3. 다음 examplepod.yaml 샘플 파일에 지정된 것과 유사한 네트워크 연결 정의를 사용하여 Pod를 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: allmultipod
      namespace: default
      annotations:
        k8s.v1.cni.cncf.io/networks: setallmulti 1
    spec:
      containers:
      - name: podexample
        image: centos
        command: ["/bin/bash", "-c", "sleep INF"]
        securityContext:
          runAsUser: 2000 2
          runAsGroup: 3000 3
          allowPrivilegeEscalation: false 4
          capabilities: 5
            drop: ["ALL"]
      securityContext:
        runAsNonRoot: true 6
        seccompProfile: 7
          type: RuntimeDefault
    1
    구성된 NetworkAttachmentDefinition 의 이름을 지정합니다.
    2
    컨테이너가 실행되는 사용자 ID를 지정합니다.
    3
    컨테이너가 실행되는 기본 그룹 ID를 지정합니다.
    4
    Pod에서 권한 에스컬레이션을 요청할 수 있는지 여부를 지정합니다. 지정되지 않은 경우 기본값은 true 입니다. 이 부울은 no_new_privs 플래그가 컨테이너 프로세스에 설정되는지 여부를 직접 제어합니다.
    5
    컨테이너 기능을 지정합니다. drop: ["ALL"] 설명은 모든 Linux 기능이 Pod에서 삭제되어 보다 제한적인 보안 프로필을 제공합니다.
    6
    컨테이너가 0 이외의 UID가 있는 사용자로 실행되도록 지정합니다.
    7
    컨테이너의 seccomp 프로필을 지정합니다. 이 경우 유형은 RuntimeDefault 로 설정됩니다. seccomp는 프로세스에서 사용할 수 있는 시스템 호출을 제한하여 공격 면적을 최소화하여 보안을 강화하는 Linux 커널 기능입니다.
  4. 다음 명령을 실행하여 YAML 파일에 지정된 설정을 적용합니다.

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

    $ oc get pod

    출력 예

    NAME          READY   STATUS    RESTARTS   AGE
    allmultipod   1/1     Running   0          23s

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

    $ oc rsh allmultipod
  7. 다음 명령을 실행하여 Pod와 관련된 모든 인터페이스를 나열합니다.

    sh-4.4# ip link

    출력 예

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8901 qdisc noqueue state UP mode DEFAULT group default
        link/ether 0a:58:0a:83:00:10 brd ff:ff:ff:ff:ff:ff link-netnsid 0 1
    3: net1@if24: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
        link/ether ee:9b:66:a4:ec:1d brd ff:ff:ff:ff:ff:ff link-netnsid 0 2

    1
    eth0@if22 는 기본 인터페이스입니다.
    2
    net1@if24 는 all-multicast 모드(ALLMULTI 플래그)를 지원하는 network-attachment-definition으로 구성된 보조 인터페이스입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.