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가 hostNetworktrue 로 설정된 경우에만 작동합니다.

20.7.3. AdminPolicyBasedExternalRoute object configuration

다음 속성을 사용하여 클러스터 범위인 AdminPolicyBasedExternalRoute 오브젝트를 정의할 수 있습니다. 네임스페이스는 한 번에 하나의 AdminPolicyBasedExternalRoute CR에서만 선택할 수 있습니다.

표 20.3. AdminPolicyBasedExternalRoute object
필드유형설명

metadata.name

string

AdminPolicyBasedExternalRoute 오브젝트의 이름을 지정합니다.

spec.from

string

라우팅 정책이 적용되는 네임스페이스 선택기를 지정합니다. namespaceSelector 만 외부 트래픽에 지원됩니다. 예를 들면 다음과 같습니다.

from:
  namespaceSelector:
    matchLabels:
      kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059

네임스페이스는 하나의 AdminPolicyBasedExternalRoute CR만 대상으로 할 수 있습니다. 두 개 이상의 AdminPolicyBasedExternalRoute CR에서 네임스페이스를 선택하면 동일한 네임스페이스를 대상으로 하는 두 번째 및 후속 CR에서 실패한 오류 상태가 발생합니다. 업데이트를 적용하려면 정책을 다시 평가하고 변경 사항을 적용하기 위해 정책 자체 또는 관련 오브젝트를 대상 네임스페이스, Pod 게이트웨이 또는 동적 홉에서 호스팅하는 정책으로 변경해야 합니다.

spec.nextHops

object

패킷이 전달되는 대상을 지정합니다. 정적동적 중 하나여야 합니다. 다음 홉이 하나 이상 정의되어 있어야 합니다.

표 20.4. nextHops 오브젝트
필드유형설명

static

array

고정 IP 주소 배열을 지정합니다.

dynamic

array

외부 게이트웨이 대상으로 사용할 네트워크 연결 정의로 구성된 Pod에 해당하는 Pod 선택기 배열을 지정합니다.

표 20.5. nextHops.static 오브젝트
필드유형설명

ip

string

다음 대상 홉의 IPv4 또는 IPv6 주소를 지정합니다.

bfdEnabled

boolean

선택 사항: 네트워크에서 Bi-Directional Forwarding Detection(BFD)를 지원하는지 여부를 지정합니다. 기본값은 false입니다.

표 20.6. nextHops.dynamic object
필드유형설명

podSelector

string

이 네트워크 구성과 일치하는 네임스페이스의 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

namespaceSelector

string

podSelector 가 적용되는 네임스페이스를 필터링하는 세트 기반 선택기를 지정합니다. 이 필드의 값을 지정해야 합니다.

bfdEnabled

boolean

선택 사항: 네트워크에서 Bi-Directional Forwarding Detection(BFD)를 지원하는지 여부를 지정합니다. 기본값은 false입니다.

networkAttachmentName

string

선택 사항: 네트워크 연결 정의의 이름을 지정합니다. 이름은 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 권한이 있는 사용자로 클러스터에 로그인합니다.

프로세스

  1. AdminPolicyBasedExternalRoute 오브젝트가 포함된 YAML 파일을 생성합니다.
  2. 관리자 정책 기반 외부 경로를 생성하려면 다음 명령을 입력합니다.

    $ oc create -f <file>.yaml

    다음과 같습니다.

    <file>
    이전 단계에서 생성한 YAML 파일의 이름을 지정합니다.

    출력 예

    adminpolicybasedexternalroute.k8s.ovn.org/default-route-policy created

  3. 관리자 정책 기반 외부 경로가 생성되었는지 확인하려면 다음 명령을 입력합니다.

    $ 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. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.