YAML を使用して Kubernetes にセルフホステッド ゲートウェイをデプロイする

適用対象: Developer | Premium

この記事では、Azure API Management のセルフホステッド ゲートウェイ コンポーネントを Kubernetes クラスターにデプロイする手順について説明します。

重要

Azure API Management セルフホステッド ゲートウェイ バージョン 0 およびバージョン 1 コンテナー イメージのサポートは、それに対応する Configuration API v1 とともに 2023 年 10 月 1 日に終了します。 Configuration API v2 でセルフホステッド ゲートウェイ v2.0.0 以上を使用するには、移行ガイドを使用してください。 非推奨に関するドキュメントで詳細を確認する

Note

また、セルフホステッド ゲートウェイを Azure Arc 対応 Kubernetes クラスタークラスター拡張機能としてデプロイすることもできます。

前提条件

Kubernetes へのデプロイ

ヒント

次の手順では、セルフホステッド ゲートウェイを Kubernetes にデプロイし、ゲートウェイ アクセス トークン (認証キー) を使用して API Management インスタンスへの認証を有効にします。 また、セルフホステッド ゲートウェイを Kubernetes にデプロイし、Microsoft Entra ID を使用して API Management インスタンスへの認証を有効にすることもできます。

  1. [Deployment and infrastructure](デプロイとインフラストラクチャ)[ゲートウェイ] を選択します。
  2. デプロイするセルフホステッド ゲートウェイ リソースを選択します。
  3. [Deployment]/(デプロイ/) を選択します。
  4. [トークン] テキスト ボックスのアクセス トークンは、既定の [有効期限] 値と [秘密鍵] 値に基づいて自動生成されました。 必要に応じて、いずれかまたは両方のコントロールで値を選択し、新しいトークンを生成します。
  5. [デプロイ スクリプト] の下にある [Kubernetes] タブを選択します。
  6. <gateway-name>.yml ファイル リンクを選択し、YAML ファイルをダウンロードします。
  7. [デプロイ] テキスト ボックスの右下隅にある [コピー] アイコンを選択し、kubectl コマンドをクリップボードに保存します。
  8. Azure Kubernetes Service (AKS) を使用する場合は、新しいターミナル セッションで az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin を実行します。
  9. コマンドを実行して既定の名前空間に必要な Kubernetes オブジェクトを作成し、Microsoft Artifact Registry からダウンロードされたコンテナー イメージからセルフホステッド ゲートウェイ ポッドを起動します。
    • 最初のステップでは、手順 4 で生成されたアクセス トークンを含めた Kubernetes シークレットを作成します。 次に、ゲートウェイの構成で ConfigMap を使用するセルフホステッド ゲートウェイの Kubernetes デプロイを作成します。

ゲートウェイが実行されていることを確認する

  1. 次のコマンドを実行し、デプロイが成功したかどうかを確認します。 すべてのオブジェクトが作成され、ポッドが初期化されるまでに少し時間がかかる場合があります。

    kubectl get deployments
    

    次のように返されるはずです。

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    <gateway-name>   1/1     1            1           18s
    
  2. サービスが正常に作成されたかどうかを確認するには、次のコマンドを実行します。 サービスの IP とポートは異なります。

    kubectl get services
    

    次のように返されるはずです。

    NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
    <gateway-name>-live-traffic         ClusterIP      None            <none>        4290/UDP,4291/UDP   9m1s
    <gateway-name>-instance-discovery   LoadBalancer   10.99.236.168   <pending>     80:31620/TCP,443:30456/TCP   9m1s
    
  3. Azure portal に戻り、 [概要] を選択します。

  4. [状態] に緑のチェック マークが表示されていることを確認し、そのマークの後ろのノード数が YAML ファイルに指定されているレプリカ数に一致することを確認します。 この状態は、デプロイされたセルフホステッド ゲートウェイ ポッドが API Management サービスと正常に通信しており、"ハートビート" が通常であることを意味します。ポータルでのセルフホステッド ゲートウェイのステータスを示すスクリーンショット。

ヒント

  • ランダムに選択されたポッドのログを表示するには、kubectl logs deployment/<gateway-name> コマンドを実行します (複数存在する場合)。
  • 特定のポッドまたはコンテナーのログを表示する方法など、コマンド オプションの完全なセットに対して kubectl logs -h を実行します。

次のステップ