20.7. 기본 네트워크에서 외부 게이트웨이 구성
클러스터 관리자는 기본 네트워크에서 외부 게이트웨이를 구성할 수 있습니다.
이 기능은 다음과 같은 이점을 제공합니다.
- 네임스페이스별로 송신 트래픽에 대한 세분화된 제어
- 정적 및 동적 외부 게이트웨이 IP 주소의 유연한 구성
- IPv4 및 IPv6 주소 제품군 모두에 대한 지원
20.7.1. 사전 요구 사항
- 클러스터는 OVN-Kubernetes 네트워크 플러그인을 사용합니다.
- 인프라는 보조 외부 게이트웨이에서 트래픽을 라우팅하도록 구성됩니다.
20.7.2. OpenShift Container Platform에서 외부 게이트웨이 IP 주소를 결정하는 방법
k8s.ovn.org
API 그룹에서 AdminPolicyBasedExternalRoute
CR(사용자 정의 리소스)을 사용하여 보조 외부 게이트웨이를 구성합니다. CR은 외부 게이트웨이의 IP 주소를 지정하는 정적 및 동적 접근 방식을 지원합니다.
AdminPolicyBasedExternalRoute
CR 대상의 각 네임스페이스는 다른 AdminPolicyBasedExternalRoute
CR에서 선택할 수 없습니다. 네임스페이스에는 동시 보조 외부 게이트웨이가 있을 수 없습니다.
정책에 대한 변경 사항은 컨트롤러에서 격리됩니다. 정책이 적용되지 않으면 다른 정책에 대한 변경 사항이 다른 정책의 재시도를 트리거하지 않습니다. 정책은 재평가되어 변경에 의해 발생할 수 있는 차이점을 적용하고, 정책 자체 또는 관련 오브젝트에 대한 업데이트가 대상 네임스페이스, pod 게이트웨이 또는 동적 홉에서 호스팅하는 네임스페이스와 같은 정책에 업데이트할 때 적용됩니다.
- 정적 할당
- IP 주소를 직접 지정합니다.
- 동적 할당
네임스페이스 및 Pod 선택기와 선택적 네트워크 연결 정의를 사용하여 IP 주소를 간접적으로 지정합니다.
- 네트워크 연결 정의 이름이 제공되면 네트워크 연결의 외부 게이트웨이 IP 주소가 사용됩니다.
-
네트워크 연결 정의의 이름이 제공되지 않으면 Pod 자체의 외부 게이트웨이 IP 주소가 사용됩니다. 그러나 이 방법은 Pod가
hostNetwork
가true
로 설정된 경우에만 작동합니다.
20.7.3. AdminPolicyBasedExternalRoute object configuration
다음 속성을 사용하여 클러스터 범위인 AdminPolicyBasedExternalRoute
오브젝트를 정의할 수 있습니다. 네임스페이스는 한 번에 하나의 AdminPolicyBasedExternalRoute
CR에서만 선택할 수 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
|
|
|
라우팅 정책이 적용되는 네임스페이스 선택기를 지정합니다. from: namespaceSelector: matchLabels: kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059
네임스페이스는 하나의 |
|
|
패킷이 전달되는 대상을 지정합니다. |
필드 | 유형 | 설명 |
---|---|---|
|
| 고정 IP 주소 배열을 지정합니다. |
|
| 외부 게이트웨이 대상으로 사용할 네트워크 연결 정의로 구성된 Pod에 해당하는 Pod 선택기 배열을 지정합니다. |
필드 | 유형 | 설명 |
---|---|---|
|
| 다음 대상 홉의 IPv4 또는 IPv6 주소를 지정합니다. |
|
|
선택 사항: 네트워크에서 Bi-Directional Forwarding Detection(BFD)를 지원하는지 여부를 지정합니다. 기본값은 |
필드 | 유형 | 설명 |
---|---|---|
|
| 이 네트워크 구성과 일치하는 네임스페이스의 Pod를 필터링하는 [set-based]( https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#set-based-requirement) 라벨 선택기를 지정합니다.https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#set-based-requirement |
|
|
|
|
|
선택 사항: 네트워크에서 Bi-Directional Forwarding Detection(BFD)를 지원하는지 여부를 지정합니다. 기본값은 |
|
| 선택 사항: 네트워크 연결 정의의 이름을 지정합니다. 이름은 Pod와 연결된 논리 네트워크 목록과 일치해야 합니다. 이 필드를 지정하지 않으면 Pod의 호스트 네트워크가 사용됩니다. 그러나 Pod는 호스트 네트워크를 사용하려면 호스트 네트워크 pod로 구성해야 합니다. |
20.7.3.1. 보조 외부 게이트웨이 구성 예
다음 예에서 AdminPolicyBasedExternalRoute
오브젝트는 kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059
라벨이 있는 네임스페이스에서 Pod의 외부 게이트웨이로 두 개의 고정 IP 주소를 구성합니다.
apiVersion: k8s.ovn.org/v1 kind: AdminPolicyBasedExternalRoute metadata: name: default-route-policy spec: from: namespaceSelector: matchLabels: kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059 nextHops: static: - ip: "172.18.0.8" - ip: "172.18.0.9"
다음 예에서 AdminPolicyBasedExternalRoute
오브젝트는 동적 외부 게이트웨이를 구성합니다. 외부 게이트웨이에 사용되는 IP 주소는 선택한 각 pod와 연결된 추가 네트워크 연결에서 파생됩니다.
apiVersion: k8s.ovn.org/v1 kind: AdminPolicyBasedExternalRoute metadata: name: shadow-traffic-policy spec: from: namespaceSelector: matchLabels: externalTraffic: "" nextHops: dynamic: - podSelector: matchLabels: gatewayPod: "" namespaceSelector: matchLabels: shadowTraffic: "" networkAttachmentName: shadow-gateway - podSelector: matchLabels: gigabyteGW: "" namespaceSelector: matchLabels: gatewayNamespace: "" networkAttachmentName: gateway
다음 예에서 AdminPolicyBasedExternalRoute
오브젝트는 정적 및 동적 외부 게이트웨이를 모두 구성합니다.
apiVersion: k8s.ovn.org/v1 kind: AdminPolicyBasedExternalRoute metadata: name: multi-hop-policy spec: from: namespaceSelector: matchLabels: trafficType: "egress" nextHops: static: - ip: "172.18.0.8" - ip: "172.18.0.9" dynamic: - podSelector: matchLabels: gatewayPod: "" namespaceSelector: matchLabels: egressTraffic: "" networkAttachmentName: gigabyte
20.7.4. 보조 외부 게이트웨이 구성
클러스터의 네임스페이스에 대한 기본 네트워크에서 외부 게이트웨이를 구성할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 클러스터에 로그인합니다.
프로세스
-
AdminPolicyBasedExternalRoute
오브젝트가 포함된 YAML 파일을 생성합니다. 관리자 정책 기반 외부 경로를 생성하려면 다음 명령을 입력합니다.
$ oc create -f <file>.yaml
다음과 같습니다.
<file>
- 이전 단계에서 생성한 YAML 파일의 이름을 지정합니다.
출력 예
adminpolicybasedexternalroute.k8s.ovn.org/default-route-policy created
관리자 정책 기반 외부 경로가 생성되었는지 확인하려면 다음 명령을 입력합니다.
$ oc describe apbexternalroute <name> | tail -n 6
다음과 같습니다.
<name>
-
AdminPolicyBasedExternalRoute
오브젝트의 이름을 지정합니다.
출력 예
Status: Last Transition Time: 2023-04-24T15:09:01Z Messages: Configured external gateway IPs: 172.18.0.8 Status: Success Events: <none>
20.7.5. 추가 리소스
- 추가 네트워크 연결에 대한 자세한 내용은 여러 네트워크 이해를 참조하십시오.