使用 Helm 將自我裝載閘道部署至 Kubernetes

適用於:開發人員 |進階版

Helm 是開放原始碼的封裝工具,可協助您安裝和管理 Kubernetes 應用程式的生命週期。 讓您可以管理 Kubernetes 圖表,即預先設定的 Kubernetes 資源套件。

本文提供使用 Helm 將 Azure API 管理自我裝載閘道元件,部署至 Kubernetes 叢集的步驟。

重要

對 Azure APIM 自我裝載閘道第 0 版和第 1 版容器映像的支援,以及其對應的設定 API v1,將於 2023 年 10 月 1 日結束。 使用我們的移轉指南,搭配設定 API v2 使用自我裝載閘道 v2.0.0 或更高版本。 在我們的淘汰文件中深入瞭解

注意

您也可以將自我裝載閘道部署至已啟用 Azure Arc 的 Kubernetes 叢集做為叢集延伸模組

必要條件

  • 建立 Kubernetes 叢集,或擁有現有叢集的存取權。

    提示

    單一節點叢集 適用於開發和評估用途。 在內部署或雲端中使用 Kubernetes 認證的多節點叢集,藉以用於生產工作負載。

新增 Helm 存放庫

  1. 新增 Azure API 管理為新的 Helm 存放庫。

    helm repo add azure-apim-gateway https://azure.github.io/api-management-self-hosted-gateway/helm-charts/
    
  2. 更新存放庫並擷取最新的 Helm 圖表。

    helm repo update
    
  3. 列出所有可用的圖表,並確認 Helm 設定。

    $ helm search repo azure-apim-gateway
    NAME                                            CHART VERSION   APP VERSION     DESCRIPTION
    azure-apim-gateway/azure-api-management-gateway 1.0.0           2.0.0           A Helm chart to deploy an Azure API Management ...
    

部署自我裝載閘道至 Kubernetes

  1. 從[部署和基礎結構] 下選取 [閘道]

  2. 選取您要部署的自我裝載閘道資源。

  3. 選取 [部署]

  4. [權杖] 文字輸入框中的新權杖是代為使用預設 [到期日] 和 [祕密金鑰] 值自動產生。 視需要調整一或兩個值,然後選取 [產生] 建立新的權杖。

  5. 記下您的權杖設定 URL

  6. 使用 Helm 圖表安裝自我裝載閘道

    helm install azure-api-management-gateway \
                 --set gateway.configuration.uri='<your configuration url>' \
                 --set gateway.auth.key='<your token>' \
                 azure-apim-gateway/azure-api-management-gateway
    
  7. 執行 命令。 此命令指示 Kubernetes 叢集:

    • 從 Microsoft Container Registry 下載自我裝載閘道的映像,並作為容器執行。
    • 設定容器並公開 HTTP (8080) 和 HTTPS (8081) 連接埠。

    重要

    根據預設,閘道會使用 ClusterIP 服務,並只在叢集中公開。 安裝期間,您可以指定 Kubernetes 服務的類型變更預設。

    例如,您可以新增 --set service.type=LoadBalancer,然後透過負載平衡器公開閘道

  8. 執行下列命令,檢查閘道 Pod 是否已執行。 您的 Pod 名稱會有所不同。

    kubectl get pods
    NAME                                           READY     STATUS    RESTARTS   AGE
    azure-api-management-gateway-59f5fb94c-s9stz   1/1       Running   0          1m
    
  9. 執行下列命令,檢查閘道服務是否已執行。 您的服務名稱和 IP 位址會有所不同。

    kubectl get services
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)               AGE
    azure-api-management-gateway   ClusterIP   10.0.229.55     <none>        8080/TCP,8081/TCP     1m
    
  10. 回到 Azure 入口網站,並確認您部署的閘道節點是否回報健全狀態。

提示

使用 kubectl logs <gateway-pod-name> 命令來檢視自我裝載閘道記錄的快照集。

下一步