3.3. 보조 네트워크에 Pod 연결
클러스터 사용자는 pod를 보조 네트워크에 연결할 수 있습니다.
3.3.1. 보조 네트워크에 pod 추가 링크 복사링크가 클립보드에 복사되었습니다!
보조 네트워크에 pod를 추가할 수 있습니다. Pod는 기본 네트워크를 통해 정상적인 클러스터 관련 네트워크 트래픽을 계속 전송합니다.
Pod가 생성되면 보조 네트워크가 포드에 연결됩니다. 그러나 pod가 이미 있는 경우 보조 네트워크를 연결할 수 없습니다.
Pod는 보조 네트워크와 동일한 네임스페이스에 있어야 합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - 클러스터에 로그인합니다.
프로세스
Pod
오브젝트에 주석을 추가합니다. 다음 주석 형식 중 하나만 사용할 수 있습니다.사용자 정의 없이 보조 네트워크를 연결하려면 다음 형식으로 주석을 추가합니다. &
lt;network
>를 Pod와 연결할 보조 네트워크의 이름으로 바꿉니다.metadata: annotations: k8s.v1.cni.cncf.io/networks: <network>[,<network>,...]
metadata: annotations: k8s.v1.cni.cncf.io/networks: <network>[,<network>,...]
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 두 개 이상의 보조 네트워크를 지정하려면 각 네트워크를 쉼표로 구분합니다. 쉼표 사이에 공백을 포함하지 마십시오. 동일한 보조 네트워크를 여러 번 지정하면 Pod에 해당 네트워크에 여러 개의 네트워크 인터페이스가 연결됩니다.
사용자 지정으로 보조 네트워크를 연결하려면 다음 형식으로 주석을 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pod를 생성하려면 다음 명령을 입력합니다.
<name>
을 Pod 이름으로 교체합니다.oc create -f <name>.yaml
$ oc create -f <name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택사항:
Pod
CR에 주석이 있는지 확인하려면 다음 명령을 입력하고<name>
을 Pod 이름으로 교체합니다.oc get pod <name> -o yaml
$ oc get pod <name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예에서
example-pod
Pod는net1
보조 네트워크에 연결되어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
k8s.v1.cni.cncf.io/network-status
매개변수는 JSON 오브젝트 배열입니다. 각 오브젝트는 Pod에 연결된 보조 네트워크의 상태를 설명합니다. 주석 값은 일반 텍스트 값으로 저장됩니다.
3.3.1.1. Pod별 주소 지정 및 라우팅 옵션 지정 링크 복사링크가 클립보드에 복사되었습니다!
보조 네트워크에 Pod를 연결할 때 특정 Pod에서 해당 네트워크에 대한 추가 속성을 지정할 수 있습니다. 이를 통해 라우팅의 일부 측면을 변경하고 고정 IP 주소 및 MAC 주소를 지정할 수 있습니다. 이를 위해 JSON 형식의 주석을 사용할 수 있습니다.
사전 요구 사항
- Pod는 보조 네트워크와 동일한 네임스페이스에 있어야 합니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 클러스터에 로그인해야 합니다.
프로세스
주소 지정 및/또는 라우팅 옵션을 지정하는 동안 보조 네트워크에 Pod를 추가하려면 다음 단계를 완료하십시오.
Pod
리소스 정의를 편집합니다. 기존Pod
리소스를 편집하는 경우 다음 명령을 실행하여 기본 편집기에서 정의를 편집합니다.<name>
을 편집할Pod
리소스의 이름으로 교체합니다.oc edit pod <name>
$ oc edit pod <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod
리소스 정의에서k8s.v1.cni.cncf.io/networks
매개변수를 Podmetadata
매핑에 추가합니다.k8s.v1.cni.cncf.io/networks
는 추가 특성을 지정하는 것 외에도NetworkAttachmentDefinition
Custom Resource(CR) 이름을 참조하는 오브젝트 목록의 JSON 문자열을 허용합니다.metadata: annotations: k8s.v1.cni.cncf.io/networks: '[<network>[,<network>,...]]' # ...
metadata: annotations: k8s.v1.cni.cncf.io/networks: '[<network>[,<network>,...]]' # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<network>
- 다음 예와 같이 을 JSON 오브젝트로 바꿉니다. 작은 따옴표를 사용해야 합니다.
다음 예에서 주석은
default-route
매개변수를 사용하여 기본 경로로 지정될 네트워크 연결을 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
name
-
name
키는 Pod와 연결할 보조 네트워크의 이름입니다. default-route
-
default-route
키는 라우팅 테이블에 다른 라우팅 항목이 없는 경우 트래픽이 라우팅될 게이트웨이 값을 지정합니다.default-route
키가 두 개 이상 지정되면 Pod가 활성화되지 않습니다.
기본 경로는 다른 경로에 지정되지 않은 모든 트래픽이 게이트웨이로 라우팅되도록 합니다.
중요OpenShift Container Platform의 기본 네트워크 인터페이스 이외의 인터페이스로 기본 경로를 설정하면 Pod 사이에서 트래픽이 라우팅될 것으로 예상되는 트래픽이 다른 인터페이스를 통해 라우팅될 수 있습니다.
Pod의 라우팅 속성을 확인하려면
oc
명령을 사용하여 Pod에서ip
명령을 실행하십시오.oc exec -it <pod_name> -- ip route
$ oc exec -it <pod_name> -- ip route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고JSON 형식의 오브젝트 목록에
default-route
키가 있으므로 Pod의k8s.v1.cni.cncf.io/network-status
를 참조하여 기본 경로가 할당된 보조 네트워크를 확인할 수도 있습니다.Pod의 고정 IP 주소 또는 MAC 주소를 설정하려면 JSON 형식의 주석을 사용하면 됩니다. 이를 위해서는 이러한 기능을 특별하게 허용하는 네트워크를 생성해야 합니다. 이는 다음과 같이 CNO의 rawCNIConfig에서 지정할 수 있습니다.
다음 명령을 실행하여 CNO CR을 편집합니다.
oc edit networks.operator.openshift.io cluster
$ oc edit networks.operator.openshift.io cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 YAML은 CNO의 구성 매개변수를 설명합니다.
CNO(Cluster Network Operator) YAML 구성
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
name
-
생성 중인 보조 네트워크 연결의 이름을 지정합니다. 이름은 지정된
namespace
내에서 고유해야 합니다. 네임스페이스
-
네트워크를 연결한 네임스페이스를 지정합니다. 값을 지정하지 않으면
default
네임스페이스가 사용됩니다. rawCNIConfig
- 다음 템플릿을 기반으로 CNI 플러그인 구성을 JSON 형식으로 지정합니다.
다음 오브젝트는 macvlan CNI 플러그인을 사용하여 고정 MAC 주소 및 IP 주소를 사용하기 위한 구성 매개변수를 설명합니다.
고정 IP 및 MAC 주소를 사용하는 macvlan CNI 플러그인 JSON 구성 오브젝트
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
name
-
생성할 보조 네트워크 연결의 이름을 지정합니다. 이름은 지정된
namespace
내에서 고유해야 합니다. plugins
- CNI 플러그인 구성의 배열을 지정합니다. 첫 번째 오브젝트는 macvlan 플러그인 구성을 지정하고 두 번째 오브젝트는 튜닝 플러그인 구성을 지정합니다.
ips
- CNI 플러그인 런타임 구성 기능의 고정 IP 주소 기능을 활성화하기 위한 요청이 수행되도록 지정합니다.
master
- macvlan 플러그인에서 사용하는 인터페이스를 지정합니다.
mac
- CNI 플러그인의 정적 MAC 주소 기능을 활성화하기 위한 요청이 수행되도록 지정합니다.
그런 다음 위의 네트워크 연결을 키와 함께 JSON 형식 주석에서 참조하여 지정된 Pod에 할당할 고정 IP 및 MAC 주소를 지정할 수 있습니다.
다음을 사용하여 Pod를 편집합니다.
oc edit pod <name>
$ oc edit pod <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고정 IP 및 MAC 주소를 사용하는 macvlan CNI 플러그인 JSON 구성 오브젝트
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고고정 IP 주소와 MAC 주소를 동시에 사용할 필요는 없으며 개별적으로 또는 함께 사용할 수 있습니다.
보조 네트워크가 있는 Pod의 IP 주소 및 MAC 속성을 확인하려면
oc
명령을 사용하여 Pod에서 ip 명령을 실행합니다.oc exec -it <pod_name> -- ip a
$ oc exec -it <pod_name> -- ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow