9단계: Apigee 인그레스 게이트웨이 노출

이 단계에서는 Apigee 인그레스 게이트웨이에 대해 Kubernetes 서비스를 설정하는 방법을 설명합니다. Kubernetes 서비스는 노출 가능한 IP 주소를 가져오기 위해 인그레스 배포마다 필요합니다. 프록시에 대한 클라이언트 호출은 이 IP 주소로 확인할 호스트 이름을 호출합니다.

Apigee 인그레스 게이트웨이의 Kubernetes 서비스 옵션

IP 주소를 할당하기 위해 Kubernetes 서비스를 제공하는 경우 두 가지 옵션이 있습니다.

자체 Kubernetes 서비스 만들기

프로덕션 환경의 경우 Apigee에서는 각 인그레스 게이트웨이에 대해 커스텀 Kubernetes 서비스를 만드는 것을 권장합니다.

  • Apigee는 기본 서비스를 삭제하지만 삭제 시 커스텀 Kubernetes 서비스를 삭제하지 않습니다. 따라서 Apigee Hybrid를 다시 설치할 때 IP 주소가 해제되지 않습니다.
  • EKS, AKS, OpenShift와 같이 Google Cloud에 없는 플랫폼의 경우 Kubernetes 서비스가 클라우드 제공업체와 협력하도록 맞춤설정해야 합니다. Apigee는 기본 Kubernetes 서비스에 대한 모든 맞춤설정을 지원하지 않으므로 기본 서비스를 사용하는 것보다 커스텀 Kubernetes 서비스를 만드는 것이 더 좋습니다.

다음 단계를 따라 트래픽을 설정하고 새 인그레스 게이트웨이로 라우팅합니다.

  1. 필수 포드 선택기 라벨(app, ingress_name, org)을 사용하여 Kubernetes 서비스를 만듭니다. 이 라벨은 이미 Apigee 인그레스 게이트웨이 포드에 있습니다. 다음을 예시로 사용하여 서비스 파일을 만듭니다.
    apiVersion: v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      namespace: apigee
    spec:
      ports:
      - name: status-port
        port: 15021
        protocol: TCP
        targetPort: 15021
      - name: https
        port: 443
        protocol: TCP
        targetPort: 8443
      selector:
        app: apigee-ingressgateway #required
        ingress_name: INGRESS_NAME
        org: ORG_NAME
      type: LoadBalancer
      loadBalancerIP: LOAD_BALANCER_IP
    • SERVICE_NAME은 이 서비스를 식별하는 데 사용되는 이름입니다. 예를 들면 apigee-prod-1입니다.
    • INGRESS_NAME은 이 Apigee 인그레스 게이트웨이 게이트웨이의 이름입니다. overrides.yaml 파일에서 ingressGateways.name에 제공한 이름과 일치해야 합니다. 자세한 내용은 구성 속성 참조의 ingressGateways를 참조하세요.
    • ORG_NAME은 Apigee 조직의 이름입니다. overrides.yaml 파일에서 org에 제공한 이름과 일치해야 합니다. 자세한 내용은 구성 속성 참조의 org를 참조하세요.
    • LOAD_BALANCER_IP는 부하 분산기의 IP 주소입니다.

    Apigee 인그레스 게이트웨이는 다음 포트를 사용합니다.

    포트 설명
    443 런타임 트래픽
    15021 상태 점검 status-port는 GKE 인그레스 상태 점검에 사용할 수 있는 /healthz/ready 엔드포인트를 노출합니다.
  2. SERVICE_FILENAME.yaml을 적용하여 서비스를 만듭니다.
    kubectl apply -f SERVICE_FILENAME.yaml
  3. 다음 명령어를 사용하여 Apigee 인그레스 게이트웨이의 외부 IP를 찾습니다.
    kubectl get svc -n apigee SERVICE_NAME

    다음과 비슷한 결과가 출력됩니다.

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  4. 기본 Apigee 인그레스 게이트웨이 서비스에 대해 부하 분산기를 사용 중지합니다.
    1. 재정의 파일에서 ingressGateways[].svcType 속성을 ClusterIP로 업데이트합니다.
      ingressGateways:
        svcType: ClusterIP
    2. apigeectl apply --org를 사용하여 변경사항을 적용합니다.
      ${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml

    자세한 내용은 기본 Apigee 인그레스 게이트웨이 서비스에 대해 loadbalancer 사용 중지를 참조하세요.

  5. 상태 점검 호출을 수행하여 인그레스 게이트웨이를 테스트합니다.

    curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    장소

    성공하면 명령어에서 다음을 반환합니다.

    Apigee Ingress is healthy
  6. 이 IP 주소를 사용하여 등록기관 또는 DNS 제공업체에서 DNS 레코드(일반적으로 A 또는 CNAME 레코드)를 업데이트합니다.

기본 Kubernetes 서비스 사용

비프로덕션 환경이나 Apigee 인그레스 게이트웨이를 통해 초기 트래픽을 테스트하려는 경우에는 Apigee Hybrid가 각 인그레스 배포에 대해 기본 Kubernetes 서비스를 제공합니다.

overrides.yaml 파일에서 기본 서비스에 대한 구성을 제한적으로 변경할 수 있습니다. 사용 가능한 구성 옵션은 Apigee 인그레스 게이트웨이 관리를 참조하세요. 예를 들어 주석을 추가할 수 있습니다.

프로덕션 환경의 경우 인그레스용 Kubernetes 서비스를 제공하는 것이 좋습니다. 자체 Kubernetes 서비스 만들기의 단계를 따르세요.

  1. 다음 명령어를 실행하여 기본 Apigee 인그레스 서비스의 외부 IP를 찾습니다.
    kubectl get svc -n apigee -l app=apigee-ingressgateway

    다음과 비슷한 결과가 출력됩니다.

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  2. 상태 점검 호출을 수행하여 인그레스 게이트웨이를 테스트합니다.

    curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    장소

    성공하면 명령어에서 다음을 반환합니다.

    Apigee Ingress is healthy
  3. 이 IP 주소를 사용하여 등록기관 또는 DNS 제공업체에서 DNS 레코드(일반적으로 A 또는 CNAME 레코드)를 업데이트합니다.
1 2 3 4 5 6 7 8 9 (다음) 10단계: 프록시 배포