Kubernetes 整合的必要條件

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本主題說明在 Kubernetes 叢集中將 Edge Microgateway 安裝為服務前,必須完成的步驟。

本主題將討論:

  • Kubernetes 叢集的最低需求。
  • 如何安裝及設定 Edge Microgateway。
  • 如何在 Kubernetes 叢集中安裝 Edge Microgateway 的基本設定。

Kubernetes 叢集規定

Kubernetes 叢集必須符合下列條件:

  • Kubernetes 1.9 以上版本。
  • Kubernetes CLI kubectl 1.9 以上版本。
  • 至少有 3 個節點的叢集,每個節點有 2 個 vCPU。

範例:在 Google Kubernetes Engine (GKE) 上建立 Kubernetes 叢集

設定 Kubernetes 管理機器

Kubernetes 管理機器是本機,您會使用這部機器對 Kubernetes 叢集執行指令。這部機器通常是可存取 Kubernetes VM 的桌上型電腦。

您必須在 Kubernetes 管理機器上安裝下列公用程式:

  • 安裝 kubectl 指令列介面 1.9 以上版本。

  • (僅限 GKE) 如果您在 GKE 上執行 Kubernetes,請安裝 gcloud

在 GKE 上建立 Kubernetes 叢集

  1. 登入 Google Cloud Platform (GCP) 的 Google Kubernetes Engine (GKE) 資訊主頁。
  2. 點選「建立叢集」
  3. 選取「標準叢集」
  4. 輸入叢集的名稱。
  5. 選取區域。
  6. 選取「Cluster Version 1.9.7-gke-*」。例如 1.9.7-gke.6
  7. 選取 3 個節點的大小。
  8. 選取 2 個 vCPU 和 7.5 GB 記憶體。
  9. 點選「建立」

    下方的螢幕截圖顯示 GKE 資訊主頁,其中已填入先前步驟所述的資訊:

    GKE 資訊主頁

取得叢集憑證

  1. 設定 GKE 專案名稱:

    gcloud config set project projectName
  2. 設定 GKE 專案可用區:

    gcloud config set compute/zone zoneName
  3. 取得 gcloud container 憑證

    gcloud container clusters get-credentials cluster-name --zone zone --project project-name

    其中:

    • cluster-name 是您建立的 Kubernetes 叢集名稱。
    • zone 是叢集所在的區域。
    • project-name 是您的 GCP 專案名稱。

    例如:

    gcloud container clusters get-credentials edgemicrogateway-cluster --zone us-central1-a --project edgemicro-project
  4. 請完全按照顯示方式執行下列指令。這項指令會將叢集管理員權限授予目前使用者。您必須具備管理員權限,才能為 Edge Microgateway 服務建立必要的 RBAC 規則:

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
    

安裝 Kubernetes 適用的 Edge Microgateway

  1. 下載 Kubernetes 適用的 Edge Microgateway。如果您使用 macOS 或 Linux 電腦,可以指定版本名稱,下載最新版本或特定版本。

    如要取得最新版本,請按照下列步驟操作:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -

    如要依版本號碼取得特定版本,請注意,版本號碼開頭必須是字母「v」。例如:v3.0.2

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s  version

    例如:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s v3.0.2
  2. 將目錄變更為安裝目錄 microgateway_Version_OS_ARCH。例如:

    cd microgateway_2.5.26_Darwin_x86_64
  3. 檢查安裝目錄:

    • /install/kubernetes - 部署至 Kubernetes 的設定 .yaml 檔。
    • /samples - 用於測試安裝結果的範例應用程式。
    • /bin - edgemicroctl 可執行檔。edgemicroctl 指令會將 Edge Microgateway 植入 Kubernetes 叢集,
  4. PATH 中加入 edgemicroctl 用戶端。舉例來說,在 MacOS 或 Linux 系統上執行下列指令:

    export PATH=$PWD/bin:$PATH
  5. 將 Edge Microgateway 基礎設定套用至 Kubernetes 叢集。下列指令會建立 edgemicro-system 命名空間和叢集角色。

    kubectl apply -f install/kubernetes/edgemicro.yaml
  6. 在叢集中安裝 NGINX Ingress 控制器。請確認沒有其他 Nginx 控制器正在執行。您可以執行 kubectl get pods 進行檢查。

    kubectl apply -f install/kubernetes/edgemicro-nginx-gke.yaml

驗證安裝

  1. 如要檢查 Ingress 控制器是否已啟動,請執行下列指令:

    kubectl get pods --all-namespaces -l app=edgemicro-ingress --watch

    如下列範例輸出內容所示,程序啟動需要一到兩分鐘。在 STATUS 變更為 Running 前,看到數個錯誤和重新啟動週期是正常現象。

    NAMESPACE          NAME                                            READY     STATUS             RESTARTS   AGE
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   1          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Error              2          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   2          40s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Running            3          1m
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running            3          1m
    
  2. Ingress 執行後,您可以輸入 Ctrl+C 取消上述指令。

  3. 執行這項指令,確認 Kubernetes 服務已部署。您應該會看到類似下方範例的輸出內容:

    kubectl get svc -n edgemicro-system
    

    輸出內容範例:

    NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                     AGE
    default-http-backend        ClusterIP      10.19.255.106  <none>         80/TCP                       2h
    edgemicro-ingress           LoadBalancer   10.19.247.156  35.224.24.13   80:30176/TCP,443:32325/TCP   2h
    
  4. 確認所有 Pod 都在執行中:

    kubectl get pods -n edgemicro-system
    

    輸出內容範例:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-2lvtw           1/1       Running   0          4m
    edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running   3          4m
    

安裝 Edge Microgateway

  1. 您必須安裝 Edge Microgateway 2.5.26 以上版本。輸入以下內容即可查看:

    edgemicro --version
  2. 如果尚未安裝 Edge Microgateway 2.5.26 以上版本,請執行安裝指令碼:

    npm install edgemicro -g
  3. 如果您是首次安裝或升級 Edge Microgateway,請執行下列指令:

    edgemicro init

    如需其他協助,請參閱「安裝 Edge Microgateway」。

下一步

現在可以將 Edge Microgateway 部署至 Kubernetes。