ステップ 9: Apigee Ingress ゲートウェイを公開する

このステップでは、Apigee Ingress ゲートウェイ用の Kubernetes Service を設定する方法について説明します。公開可能な IP アドレスを取得するには、Ingress デプロイごとに Kubernetes サービスが必要です。プロキシへのクライアント呼び出しにより、この IP アドレスに解決されるホスト名が呼び出されます。

Apigee Ingress ゲートウェイの Kubernetes Service のオプション

IP アドレスを割り当てる Kubernetes Service を提供する方法は 2 つあります。

独自の Kubernetes Service を作成する

本番環境では、Ingress ゲートウェイごとにカスタム Kubernetes Service を作成することをおすすめします。

  • Apigee によってデフォルト サービスが削除されますが、クリーンアップ時にカスタム Kubernetes Service は削除されません。このため、Apigee ハイブリッドの再インストール時に IP アドレスが解放されることはありません。
  • EKS、AKS、OpenShift などの Google Cloud 以外のプラットフォームでは、クラウド プロバイダと連携するように Kubernetes Service をカスタマイズする必要があります。Apigee ではデフォルトの Kubernetes Service に対する一部のカスタマイズがサポートされていないため、デフォルトのサービスを使用するよりも、カスタムの Kubernetes Service を作成するほうが適切です。

次の手順に沿って新しい Ingress ゲートウェイにトラフィックを設定し、ルーティングします。

  1. 必要な Pod セレクタのラベル(appingress_nameorg)を使用して Kubernetes Service を作成します。これらのラベルは、Apigee Ingress ゲートウェイ Pod にすでに存在しています。次の例を使用してサービス ファイルを作成します。
    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 Ingress ゲートウェイの名前です。overrides.yaml ファイルで ingressGateways.name に指定した名前と一致する必要があります。詳細については、構成プロパティのリファレンスの ingressGateways をご覧ください。
    • ORG_NAME は Apigee 組織の名前です。overrides.yaml ファイルで org に指定した名前と一致する必要があります。詳細については、構成プロパティのリファレンスの org をご覧ください。
    • LOAD_BALANCER_IP は、ロードバランサの IP アドレスです。

    Apigee Ingress ゲートウェイにより、次のポートが公開されます。

    ポート 説明
    443 ランタイム トラフィック。
    15021 ヘルスチェック。status-port により、GKE Ingress ヘルスチェックで使用できる /healthz/ready エンドポイントが公開されます。
  2. SERVICE_FILENAME.yaml を適用してサービスを作成します。
    kubectl apply -f SERVICE_FILENAME.yaml
  3. 次のコマンドで Apigee Ingress ゲートウェイの外部 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 Ingress ゲートウェイ サービスのロードバランサを無効にします。
    1. オーバーライド ファイルで ingressGateways[].svcType プロパティを ClusterIP に更新します。
      ingressGateways:
        svcType: ClusterIP
    2. apigeectl apply --org を使用して変更を適用します。
      ${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml

    詳細については、デフォルトの Apigee Ingress ゲートウェイ サービスのロードバランサを無効にするをご覧ください。

  5. ヘルスチェック呼び出しを行って Ingress ゲートウェイをテストします。

    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 Service を使用する

非本番環境の場合、または Apigee Ingress ゲートウェイを介して初期トラフィックをテストする場合は、Apigee ハイブリッドにより Ingress のデプロイごとにデフォルトの Kubernetes Service が提供されます。

overrides.yaml ファイルで、デフォルト サービスの限定的な構成の変更ができます。使用可能な構成オプションについては、Apigee Ingress ゲートウェイの管理をご覧ください。たとえば、アノテーションを追加できます。

本番環境では、Ingress に Kubernetes Service を使用することをおすすめします。独自の Kubernetes Service を作成するの説明に従ってください。

  1. 次のコマンドで、デフォルトの Apigee Ingress サービスの外部 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. ヘルスチェック呼び出しを行って Ingress ゲートウェイをテストします。

    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: プロキシをデプロイする