IPv6 주소용 FloatingIP/DNAT
요약 클라우드 네이티브 Contrail 릴리스 23.네트워크 주소 변환1주니퍼 듀얼 스택 지원 서비스(ClusterIP). 이 문서에서는 CN2에서 이 기능이 작동하는 방식에 대한 정보를 제공합니다.
사전 요구 사항
이 기능을 사용하려면 다음이 필요합니다.- CN2 릴리스 23.1 이상을 실행하는 환경
- 이중 스택
featureGate이 활성화된 Kubeadm 또는 Kubespray Kubernetes 클러스터. 자세한 내용은 IPv4 및 IPv6 듀얼 스택 네트워킹을 참조하십시오. - 듀얼 스택 네트워크 인터페이스로 구성된 Kubernetes 노드
FloatingIP/DNAT 개요
CN2에서 FloatingIP는 ClusterIP 기능을 구현합니다. 서비스를 생성하면 FloatingIP가 서비스 서브넷에서 해당 서비스에 할당되고 클러스터의 모든 백엔드 팟(Pod) VMI에 연결됩니다. vRouter는 백엔드 포드에 대해 DNAT를 수행합니다. 이 프로세스는 백엔드 포드 VMI가 ECMP 경로로 작동하는 ECMP(Equal-Cost Multi-Path Routing) 로드 밸런싱으로 구성됩니다.IPv6에 대한 DNAT 개요
CN2 릴리스 23.1은 CN2 ClusterIP 서비스의 IPv4 및 IPv6 주소에 대해 DNAT(FloatingIP)를 지원합니다. IPv6용 DNAT는 IPv4용 DNAT와 동일하게 작동합니다. 서비스(ClusterIP)를 작성하고 에 대해ipFamilyPolicy지정
PreferDualStack 하면 IPv6 FloatingIP가 해당 서비스에 할당됩니다. vRouter는 DNAT를 수행하고 트래픽을 다음 홉 또는 변환된 대상 주소(백엔드 포드 VMI)로 라우팅합니다. 외부 네트워크에서 백엔드 포드 VMI로.
FloatingIP/DNAT 구축
이 기능을 배포하려면 다음 단계를 완료하십시오.
-
를 구성하고 설치합니다.
Deployment오브젝트는DeploymentClusterIP 서비스에 대한 백엔드 포드를 생성합니다. 다음은 예제Deployment입니다. 이렇게 하면Deployment마운트nginx-xconf된 구성으로 명명된nginxPod가 생성됩니다.apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: example-clusterip6 spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: tolerations: - key: "node.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 - key: "node.kubernetes.io/not-ready" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 containers: - name: nginx image: <repository>:<tag> ports: - containerPort: 8080 volumeMounts: - name: nginx-conf mountPath: /etc/nginx/nginx.conf subPath: nginx.conf readOnly: true volumes: - name: nginx-conf configMap: name: nginx-conf items: - key: nginx.conf path: nginx.conf -
ClusterIP 서비스를 생성합니다. 다음은 예제 서비스입니다.
apiVersion: v1 kind: Service metadata: name: nginx namespace: clusterip6 labels: app: nginx spec: ports: - name: http port: 8080 protocol: TCP targetPort: 8080 selector: app: nginx ipFamilies: - "IPv6"다음 필드를 참고해 주십시오.
-
labels: 백엔드 Pod를app: nginxlabel. -
selector: 레이블이 있는app: nginx백엔드 Pod에 속하는 VMI를 선택하도록 서비스에 지시합니다. -
ipFamilies: ClusterIP 서비스에서 사용하는 IP 패밀리를 지정합니다. 기본값은 IPv4입니다. 두 IP 패밀리를 모두 사용하려면 값을 사용합니다IpFamilyPolicy: PreferDualStack.
-