타사 수신 컨트롤러

타사 수신 컨트롤러를 지원하도록 NCP를 구성할 수 있습니다.

ncp.ini
파일 편집

구성 파일
/var/vcap/data/jobs/ncp/xxxxxxxx/config/ncp.ini
를 편집해야 합니다(여기서 xxxxxxxx는 BOSH 배포 ID임). 그러면 NCP가 다시 시작될 때마다 이 파일이
rootfs
에 복사되고 NCP에서 사용됩니다. 이 파일은 각 마스터 노드에서 편집해야 합니다.
ncp.ini
의 변경 내용은 TKGI 클러스터 업데이트 시 지속되지 않습니다. TKGI 타일을 통해 변경한 다음, TKGI 배포를 업데이트하는 경우
ncp.ini
의 변경 내용이 손실됩니다.
관련 옵션은
nsx_v3
섹션에 있습니다.
  • use_native_loadbalancer
    -
    False
    로 설정하면 NCP는 주석과 관계없이 LoadBalancer 유형 업데이트의 모든 수신 또는 서비스를 처리하지 않습니다. 이 설정은 전체 TKGI 클러스터에 적용됩니다. 기본값은
    True
    입니다.
  • default_ingress_class_nsx
    -
    True
    로 설정하면 NCP는 기본 수신 컨트롤러가 되고,
    kubernetes.io/ingress.class: "nsx"
    주석이 지정된 수신과 어떤 주석도 지정되지 않은 수신을 모두 처리합니다.
    False
    로 설정하면 NCP는
    kubernetes.io/ingress.class: "nsx"
    로 주석이 지정된 수신만 처리합니다. 기본값은
    True
    입니다.
    NCP 3.2.1부터
    default_ingress_class_nsx
    가 더 이상 사용되지 않습니다. NCP는 수신 클래스를 확인할 때 다음을 검토합니다.
    • 주석
    • ingressClass
      개 개체
    • 주석을 지정하지 않았으며
      use_native_loadbalancer
      가 True이면 NSX-LB가 수신을 처리합니다. 그렇지 않으면 NSX-LB가 이를 처리하지 않습니다.
NCP가 부동 IP를 NGINX 컨트롤러 포드에 할당하고 부동 IP를 사용하여 수신 상태를 업데이트하도록 하려면 다음을 수행합니다.
  • ncp.ini
    k8s
    섹션에서
    ingress_mode=nat
    를 설정합니다.
  • NGINX 수신 컨트롤러 포드에 주석
    ncp/ingress-controller: "True"
    를 추가합니다.
NCP가 NGINX 수신 컨트롤러 포드의 부동 IP를 사용하여 주석
kubernetes.io/ingress.class: "nginx"
가 지정된 수신 상태를 업데이트합니다.
default_ingress_class_nsx=False
인 경우 NCP가 NGINX 수신 컨트롤러 포드의 부동 IP를 사용하여 주석
kubernetes.io/ingress.class
가 지정되지 않은 수신 상태도 업데이트합니다.
참고: NGINX 수신 컨트롤러 포드에
ncp/ingress-controller: "True"
주석이 지정되지 않은 경우에도 NCP가 위에 언급된 수신 상태를
loadBalancer: {}
로 업데이트합니다. 그러면 NGINX 컨트롤러가 수신 상태를
loadBalancer: {ingress: [{ip: <IP>}]}
로 업데이트하고 NCP가 수신 상태를
loadBalancer: {}
로 업데이트하는 루프에서 수신이 중단될 수 있습니다. 이러한 상황을 피하려면 다음 단계를 수행합니다.
NAT 모드로 배포된 타사 수신 컨트롤러의 경우,
k8s
섹션에서
http_ingress_port
https_ingress_port
매개 변수를 수정하여 수신 컨트롤러에 대해 노출되는 NAT 규칙에 대한 사용자 지정 포트를 지정할 수 있습니다.

시나리오 1: NCP가 수신을 처리하지만 기본 수신 컨트롤러가 아닙니다.

이 절차에 따라 NCP가
nsx
클래스 수신을 처리하도록 합니다.
  1. 각 마스터 노드에서
    ncp.ini
    nsx_v3
    섹션을 편집합니다.
    1. default_ingress_class_nsx
      False
      로 설정합니다.
    2. use_native_loadbalancer
      를 기본값인
      True
      로 둡니다.
  2. 각 마스터 노드에서 NCP를 다시 시작합니다. 이로 인해 마스터 페일오버가 발생할 수 있습니다.
  3. NCP가 처리할 모든 수신에
    kubernetes.io/ingress.class: "nsx"
    주석을 지정합니다.

시나리오 2: NCP가 기본 수신 컨트롤러입니다.

다음 절차를 따릅니다.
  1. ncp.ini
    를 편집할 필요가 없지만 모든 수신에 주석이 지정되어 있는지 확인합니다.
  2. NCP를 통해 처리할 수신에는
    kubernetes.io/ingress.class: "nsx"
    주석을 지정해야 합니다.
    NCP는
    kubernetes.io/ingress.class
    주석이 지정되지 않은 수신도 처리하지만 여러 수신 컨트롤러가 있는 경우에는 항상
    kubernetes.io/ingress.class
    주석을 지정하고, 기본 수신 컨트롤러 동작에 의존하지 않는 것이 좋습니다.
  3. 타사 수신 컨트롤러를 통해 처리할 수신에는 해당 수신 컨트롤러에 필요한 값이 주석으로 지정되어야 합니다.
목표가 NGINX를 기본 수신 컨트롤러로 지정하는 것이 아니라면, NGINX를 기본 수신 컨트롤러로 지정하는
nginx
를 NGINX 수신 컨트롤러로 사용하면 안 됩니다.

시나리오 3: NCP는 주석과 관계없이 어떠한 수신도 처리하지 않습니다.

다음 절차를 따릅니다.
  1. 각 마스터 노드에서
    ncp.ini
    nsx_v3
    섹션을 편집합니다.
    1. use_native_loadbalancer
      False
      로 설정합니다. 이제
      default_ingress_class_nsx
      의 값은 부적절합니다.
  2. 각 마스터 노드에서 NCP를 다시 시작합니다. 이로 인해 마스터 페일오버가 발생할 수 있습니다.
NCP는 LoadBalancer 유형의 서비스도 처리하지 않습니다.