antrea-nsx-routed를 클러스터의 CNI로 지정하여 라우팅 가능한 포드 네트워킹을 사용하도록 Tanzu Kubernetes 클러스터를 구성할 수 있습니다.

라우팅 가능한 포드 네트워킹 소개

Kubernetes 네트워크 모델을 사용하려면 클러스터의 노드 네트워크에 있는 포드가 NAT(네트워크 주소 변환) 없이 동일한 클러스터의 모든 노드에 있는 모든 포드와 통신할 수 있어야 합니다. 이 요구 사항을 충족하기 위해 각 Kubernetes 포드에는 전용 포드 네트워크에서 할당된 IP 주소가 지정됩니다.

antrea 또는 calico CNI 플러그인을 사용하여 Tanzu Kubernetes 클러스터를 프로비저닝하면 기본 포드 네트워크 192.168.0.0/16이 생성됩니다. 이 서브넷은 클러스터 내에서만 고유하며 인터넷에서 라우팅할 수 없는 개인 주소 공간입니다. network.pods.cidrBlocks를 사용자 지정할 수 있지만 이러한 CNI 플러그인을 사용하여 포드 네트워크를 라우팅할 수 없습니다. 자세한 내용은 Tanzu Kubernetes 클러스터 프로비저닝을 위한 TKGS v1alpha2 API의 내용을 참조하십시오.

Tanzu Kubernetes Grid 서비스 v1alpha2 API는 antrea-nsx-routed CNI 플러그인을 사용하여 라우팅 가능한 포드 네트워킹을 지원합니다. 이 네트워크 인터페이스는 Tanzu Kubernetes 클러스터에 대해 라우팅 가능한 포드 네트워크를 지원하도록 구성된 사용자 지정된 Antrea 플러그인입니다. 클러스터 규격에서 포드 CIDR 블록 필드는 명시적으로 null이어야 합니다. 그래야 IPAM(IP 주소 관리)이 감독자 클러스터에서 처리됩니다.

라우팅 가능한 포드 네트워킹을 사용하도록 설정하면 클러스터 외부의 클라이언트에서 직접 포드의 주소를 지정할 수 있습니다. 또한 외부 네트워크 서비스 및 서버가 소스 포드를 식별하고 IP 주소를 기반으로 정책을 적용할 수 있도록 포드 IP 주소가 보존됩니다. 지원되는 트래픽 패턴에는 다음이 포함됩니다.
  • Tanzu Kubernetes 클러스터 포드와 동일한 vSphere 네임스페이스에 있는 vSphere 포드 간에 트래픽이 허용됩니다.
  • Tanzu Kubernetes 클러스터 포드와 다른 vSphere 네임스페이스에 있는 vSphere 포드 간에 트래픽이 삭제됩니다.
  • 감독자 클러스터 제어부 노드는 Tanzu Kubernetes 클러스터 포드에 연결할 수 있습니다.
  • Tanzu Kubernetes 클러스터 포드는 외부 네트워크에 연결할 수 있습니다.
  • 외부 네트워크는 Tanzu Kubernetes 클러스터 포드에 연결할 수 없습니다. Tanzu Kubernetes 클러스터 노드의 DFW(분산 방화벽) 격리 규칙에 따라 트래픽이 삭제됩니다.

라우팅 가능한 포드에 대한 시스템 요구 사항

라우팅 가능 포드 네트워킹을 사용하려면 NSX-T Data Center로 감독자 클러스터를 구성해야 합니다. 네이티브 vSphere vDS 네트워킹에는 라우팅 가능한 포드를 사용할 수 없습니다.

라우팅 가능한 포드에는 Tanzu Kubernetes Grid 서비스 v1alpha2 API가 필요합니다. TKGS v1alpha2 API 사용에 대한 요구 사항의 내용을 참조하십시오.

라우팅 가능한 포드에 대한 NSX-T 구성 요구 사항

기본 요구 사항 외에, Tanzu Kubernetes 클러스터에서 라우팅 가능한 포드 네트워크를 사용하는 데 필요한 특별한 NSX-T 구성은 없습니다. NSX-T가 포함된 vSphere U3을 실행하는 vSphere with Tanzu 환경에는 라우팅 가능한 포드 네트워크를 지원하는 NCP 버전이 포함됩니다. 추가적인 NSX-T 구성은 필요하지 않습니다.

NCP는 다음 두 가지 소스 중 하나에서 라우팅 가능한 포드 네트워크에 대한 IP 풀을 생성합니다.
  • 워크로드 네트워크가 네임스페이스 네트워크로 구성된 경우 NCP는 이 네임스페이스 네트워크에 대해 지정된 IP 블록에서 하나 이상의 IP 풀을 생성합니다.
  • 워크로드 네트워크에 대해 지정된 네임스페이스 네트워크가 없는 경우 NCP는 감독자 클러스터 포드 CIDR에서 하나 이상의 IP 풀을 생성합니다.
자세한 내용은 VDS 네트워킹으로 구성된 감독자 클러스터에 워크로드 네트워크 추가NSX-T Data Center로 구성된 감독자 클러스터에서 워크로드 네트워크 설정 변경 항목을 참조하십시오.

라우팅 가능한 포드에 대한 감독자 클러스터 구성 요구 사항

기본 요구 사항 외에 Tanzu Kubernetes 클러스터에서 라우팅 가능한 포드 네트워크를 사용하는 데 필요한 특별한 감독자 클러스터 구성은 없습니다.

라우팅 가능한 포드 네트워킹을 아래 설명된 대로 사용하도록 설정한 경우 Tanzu Kubernetes 클러스터 포드 CIDR은 네임스페이스 네트워크에서 생성된 IP 풀에서 할당되거나, 없는 경우 감독자 클러스터 포드 CIDR에서 할당됩니다.

클러스터 노드에 대한 IP 주소를 할당하는 감독자 클러스터 서비스 CIDR이 네임스페이스 네트워크 CIDR 또는 감독자 클러스터 포드 CIDR과 겹치지 않는지 확인해야 합니다.

라우팅 가능한 포드에 대한 클러스터 구성 예

다음 예제 YAML은 라우팅 가능한 포드 네트워크로 클러스터를 구성하는 방법을 보여줍니다. v1alpha2 API를 사용하여 Tanzu Kubernetes 클러스터를 프로비저닝하고 Tanzu Kubernetes Grid 서비스를 호출하기 위한 사용자 지정 구성입니다.

클러스터 규격은 antrea-nsx-routed를 라우팅 가능한 포드 네트워킹을 사용하도록 설정하기 위한 CNI로 선언합니다. CNI로 antrea-nsx-routed가 지정되면 pods.cidrBlock 필드는 비어 있어야 합니다. antrea-nsx-routed가 지정된 경우 NSX-T 네트워킹이 사용되지 않으면 클러스터 프로비저닝이 실패합니다.

apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
  name: tkgs-v2-cluster-routable-pods
  namespace: tkgs-cluster-ns
spec:
  topology:
    controlPlane:
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: vwt-storage-policy
      tkr:  
        reference:
          name: v1.21.2---vmware.1-tkg.1.ee25d55
    nodePools:
    - name: worker-nodepool-a1
      replicas: 3
      vmClass: guaranteed-large
      storageClass: vwt-storage-policy
      tkr:  
        reference:
          name: v1.21.2---vmware.1-tkg.1.ee25d55
  settings:
    storage:
      defaultClass: vwt-storage-policy
    network:
      #`antrea-nsx-routed` is the required CNI
      #for routable pods 
      cni:
        name: antrea-nsx-routed
      services:
        cidrBlocks: ["10.97.0.0/24"]
      serviceDomain: tanzukubernetescluster.local
      #`pods.cidrBlocks` value must be empty
      #when `antrea-nsx-routed` is the CNI 
      pods:
        cidrBlocks: