SNI 이외의 클라이언트 사용 설정

이 주제에서는 Apigee Hybrid에 사용할 수 있도록 SNI 이외의 클라이언트를 사용 설정하는 방법을 설명합니다.

SNI 이외의 클라이언트 구성 방법

이 섹션에서는 Apigee Hybrid에서 SNI(서버 이름 표시) 이외의 클라이언트의 지원을 사용 설정하는 방법을 설명합니다. SNI 이외의 클라이언트는 포트 443을 사용하며 하이브리드 런타임 인스턴스를 Google Cloud Load Balancing과 통합하려는 경우나 SNI를 지원하지 않는 클라이언트에 필요합니다.
  1. ApigeeRoute 커스텀 리소스 정의(CRD)를 생성합니다. enableNonSniClienttrue로 설정되었는지 확인합니다.
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: ROUTE_NAME
      namespace: APIGEE_NAMESPACE
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: CREDENTIAL_NAME
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      selector:
        app: apigee-ingressgateway
      enableNonSniClient: true

    각 항목의 의미는 다음과 같습니다.

    • ROUTE_NAME은 커스텀 리소스(CR)에 지정하는 이름입니다.
    • CREDENTIAL_NAME은 virtualhost에 대해 TLS 사용자 인증 정보를 포함하는 클러스터에 배포된 Kubernetes 보안 비밀의 이름입니다. 다음 kubectl 명령어를 사용하여 사용자 인증 정보 이름을 찾을 수 있습니다.
      kubectl -n APIGEE_NAMESPACE get ApigeeRoutes -o=yaml | grep credentialName
    • hostnames는 와일드 카드 '*'로 설정해야 합니다.
  2. 재정의 파일을 열고 다음 단계에 설명된 변경을 수행합니다.
  3. 각 환경 그룹에 대해 ApigeeRoute 이름을 additionalGateways 속성에 추가합니다. 예를 들면 다음과 같습니다.
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["ROUTE_NAME"]
  4. CRD 파일을 저장합니다. 예를 들면 ApigeeRoute.yaml입니다.
  5. CRD를 클러스터에 적용합니다.
    kubectl apply -f ApigeeRoute.yaml -n APIGEE_NAMESPACE
  6. 변경사항을 virtualhosts에 적용합니다. 셸에서 $ENV_GROUP 환경 변수를 설정한 경우 이를 다음 명령어에 사용할 수 있습니다.
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml
    

사용 참고사항

  • 클러스터에 조직이 2개 이상 포함되면 어떻게 되나요?

    인그레스가 지정된 포트(443)에 대해 클러스터 수준에 있고, ApigeeRoute CRD에 대해 하나의 키/인증서 쌍만 가능하므로, 모든 조직이 동일한 키/인증서 쌍을 공유해야 합니다.

  • 클러스터에 환경 그룹이 2개 이상 포함되면 어떻게 되나요? 가상 호스트가 동일한 키/인증서 쌍을 공유할 경우 작동하나요?

    모든 환경 그룹 간의 모든 호스트 이름이 동일한 키/인증서 쌍을 사용해야 합니다.

  • 게이트웨이 대신 ApigeeRoute를 만드는 이유가 무엇인가요?

    ApigeeRoutes는 Apigee로 검증할 수 있지만 게이트웨이(Istio CRD)는 그렇지 않습니다. 기술적으로 게이트웨이도 작동 가능하지만, 잠재적인 구성 실수를 방지할 수 있습니다(검증 웹훅 사용).

  • Apigee용으로 SNI 이외의 클라이언트를 구성하려면 어떻게 해야 하나요?

    Apigee 인스턴스가 Google 부하 분산기를 통해 노출되면 부하 분산기는 부하 분산 문서의 설명대로 SNI 이외의 클라이언트를 지원합니다. 그렇지 않고 내부 PSC 엔드포인트나 VPC를 통해 Apigee 인스턴스를 노출한 경우 기본적으로 Apigee 인스턴스는 SNI 이외의 클라이언트를 지원합니다.