共用方式為


在 Azure Stack Edge Pro GPU 上已啟用 Azure Arc 的 Kubernetes 叢集上,透過 Redis 部署 PHP Guestbook 無狀態應用程式

適用於: 是,適用於 Pro GPU SKUAzure Stack Edge Pro - GPU是,適用於 Pro 2 SKUAzure Stack Edge Pro 2是,適用於 Pro R SKUAzure Stack Edge Pro R是,適用於 Mini R SKUAzure Stack Edge Mini R

本文說明如何使用 Kubernetes 和 Azure Arc 來建置和部署簡單的多層式 Web 應用程式。此範例由下列元件組成:

  • 用來儲存 guestbook 輸入的單一執行個體 Redis 主機
  • 多個重複的 Redis 執行個體以供讀取
  • 多個 Web 前端執行個體

在 Azure Stack Edge Pro 裝置上已啟用 Azure Arc 的 Kubernetes 叢集上使用 GitOps 即可完成部署。

此程序適用於已詳閱 Azure Stack Edge Pro 裝置上的 Kubernetes 工作負載,並熟悉什麼是已啟用 Azure Arc 的 Kubernetes (預覽版)概念的人員。

注意

本文包含「從屬」一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。

必要條件

在您可以部署無狀態應用程式之前,請務必先在裝置上完成下列必要條件,以及您將用來存取裝置的用戶端:

針對裝置

  1. 您有 1 個節點 Azure Stack Edge Pro 裝置的登入認證。

    1. 裝置已啟動。 請參閱啟動裝置
    2. 裝置具有透過 Azure 入口網站設定的計算角色,且具有 Kubernetes 叢集。 請參閱設定計算
  2. 您已在裝置上的現有 Kubernetes 叢集上啟用 Azure Arc,並在 Azure 入口網站中擁有對應的 Azure Arc 資源。 如需詳細步驟,請參閱在 Azure Stack Edge Pro 裝置上啟用 Azure Arc

針對存取裝置的用戶端

  1. 您有將用來存取 Azure Stack Edge Pro 裝置的 Windows 用戶端系統。

    • 用戶端執行 Windows PowerShell 5.0 以上版本。 若要下載最新版本的 Windows PowerShell,請前往安裝 Windows PowerShell

    • 您也可以有搭配支援作業系統的其他用戶端。 本文會說明使用 Windows 用戶端的程序。

  2. 您已完成在 Azure Stack Edge Pro 裝置上存取 Kubernetes 叢集中所描述的程序。 您已經:

    • 已將 kubectl 安裝在用戶端上。

    • 請確定 kubectl 用戶端版本與在 Azure Stack Edge Pro 裝置上執行的 Kubernetes 主要版本相比,沒有差超過一個版本。

      • 使用 kubectl version 檢查用戶端上執行的 kubectl 版本。 記下完整版本。
      • 在 Azure Stack Edge Pro 裝置的本機 UI 中,移至 [概觀],並記下 Kubernetes 軟體號碼。
      • 確認這兩個版本是否與支援的 Kubernetes 版本中所提供的對應相容。
  3. 您有一個 GitOps 設定,可用來執行 Azure Arc 部署。 在此範例中,您將使用下列 yaml 檔案在 Azure Stack Edge Pro 裝置上部署。

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-slave-deployment.yaml
    • redis-slave-service.yaml

部署組態

請遵循下列步驟來設定 Azure Arc 資源,以透過 Azure 入口網站部署 GitOps 設定:

  1. 在您的 Azure 入口網站中,移至您在裝置上的 Kubernetes 叢集上啟用 Azure Arc 時所建立的 Azure Arc 資源。

    移至 Azure Arc 資源

  2. 移至 [設定],然後選取 [ + 新增設定]

    顯示已啟用 Azure Arc 的 Kubernetes 叢集的螢幕擷取畫面,其中已選取 [新增設定]。

  3. 指定 Flux 第 1 版延伸模組

  4. 在 [新增 GitOps 設定] 中,為欄位輸入適當的值,然後選取 [新增]

    參數 描述
    設定名稱 設定資源的名稱。
    運算子執行個體名稱 用來識別特定設定的運算子執行個體名稱。 [名稱] 是最多 253 個字元的字串,必須為小寫、英數位元、連字號和句點。
    運算子命名空間 設定為 demotestguestbook,以符合部署 yaml 中指定的命名空間。
    欄位會定義安裝運算子的命名空間。 [名稱] 是最多 253 個字元的字串,必須為小寫、英數位元、連字號和句點。
    存放庫 URL
    GitOps 設定所在的 Git 存放庫 (http://github.com/username/repogit://github.com/username/repo 格式) 路徑。
    運算子範圍 選取 [命名空間]
    此參數會定義運算子安裝所在的範圍。 選取 [命名空間],以在部署 yaml 檔案中指定的命名空間安裝運算子。
    運算子類型 保留預設值。
    此參數會指定運算子的類型 - 預設值會設定為 flux。
    運算子參數 保留空白。
    此參數包含要傳遞至 flux 運算子的參數。
    Helm 將此核取方塊保持不核取狀態
    如果您要執行圖表式部署,請啟用此選項。

    新增設定

  5. 設定部署隨即啟動,[運算子] 狀態會顯示為 [擱置]

    顯示已啟用 Azure Arc 的 Kubernetes 叢集在重新整理時處於擱置中狀態的螢幕擷取畫面。

  6. 部署需要幾分鐘。 部署完成時,[運算子狀態] 會顯示為 [已安裝]

    顯示已啟用 Azure Arc 的 Kubernetes 叢集處於已安裝狀態的螢幕擷取畫面。

驗證部署

透過 GitOps 設定的部署會建立 demotestguestbook 命名空間,如位於 git 存放庫中的部署 yaml 檔案所述。

  1. 套用 GitOps 設定之後,請連線到裝置的 PowerShell 介面

  2. 執行下列命令,以列出在對應至部署之 demotestguestbook 命名空間中執行的 Pod。

    kubectl get pods -n <your-namespace>

    以下是範例輸出。

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-slave-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-slave-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. 在此範例中,前端服務已部署為 type:LoadBalancer。 您必須尋找此服務的 IP 位址,才能檢視 guestbook。 執行下列命令。

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-slave    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. type:LoadBalancer 的前端服務具有外部 IP 位址。 此 IP 來自您在裝置上設定計算網路設定時,為外部服務指定的 IP 位址範圍。 使用此 IP 位址檢視 URL 的 guestbookhttps://<external-IP-address>

    檢視訪客留言

刪除部署

若要刪除部署,您可以透過 Azure 入口網站刪除設定。 刪除設定將會刪除已建立的物件,包括部署和服務。

  1. 在Azure 入口網站中,移至 Azure Arc 資源 > 設定。
  2. 找出您要刪除的設定。 選取 [...] 可叫用捷徑功能表,然後選取 [刪除]刪除設定

刪除設定可能需要幾分鐘。

下一步

了解如何使用 Kubernetes 儀表板監視 Azure Stack Edge Pro 裝置上的部署