使用 GitOps 和 Flux 進行遠端部署和 CI
本文說明如何將應用程式部署至已啟用Arc的AKS Edge Essentials 叢集。 步驟如下:
- 指向您的 GitHub 應用程式至 Azure 入口網站。
- 藉由安裝 GitOps 組態,將您的應用程式推送至 AKS Edge Essentials 叢集。
- 認可對 GitHub 應用程式的變更,並顯示您的應用程式會自動更新。
注意
請確定您已為 Linux VM 配置至少 4 GB 的 RAM 和 4 CPU,以及大於 0 的服務 IP 範圍。 視工作負載而定,您可能也需要比預設 10 GB 更大的磁碟空間。
步驟 1:分支示範應用程式存放庫
移至 Azure Arc Jumpstart 存放庫 ,並將其分支至您的 GitHub 帳戶。
步驟 2:建立設定
移至 Azure 入口網站 中的叢集,然後選取 [GitOps]。 接下來,建立叢集層級組態和命名空間層級組態。 選取 [建立] 和 [Flux 第 2 版]。
叢集層級設定
屬性 | 輸入 |
---|---|
設定名稱 | config-nginx |
Namespace | ingress-nginx |
範圍 | Cluster |
來源種類 | Git 存放庫 |
存放庫 URL | <分支的 URL> |
參考類型 | 分支 |
分行 | main |
存放庫類型 | 公開 |
同步處理間隔 | 1 |
同步處理逾時 | 10 |
Kustomization | |
執行個體名稱 | nginx |
路徑 | ./nginx/release |
同步處理間隔 | 10 |
同步處理逾時 | 10 |
剪除 | 已啟用 |
Force | 未啟用 |
等到 config-nginx
成功建立並顯示在您的 Azure 入口網站 GitOps 上,再建立命名空間層級設定(如果合規性處於擱置狀態,您可以繼續建立下一個設定)。
Namespace層級組態
屬性 | 輸入 |
---|---|
設定名稱 | config-helloarc |
Namespace | hello-arc |
範圍 | Namespace |
來源種類 | Git 存放庫 |
存放庫 URL | <分支的 URL> |
參考類型 | 分支 |
分行 | main |
存放庫類型 | 公開 |
同步處理間隔 | 1 |
同步處理逾時 | 10 |
Kustomization | |
執行個體名稱 | app |
路徑 | ./hello-arc/releases/app |
同步處理間隔 | 10 |
同步處理逾時 | 10 |
剪除 | 已啟用 |
Force | 未啟用 |
重新整理您的組態數據表,並等候設定安裝並符合規範。 使用 kubectl
,檢查服務是否正在執行:
kubectl get svc -n ingress-nginx
kubectl get pods -n hello-arc
開啟網頁瀏覽器並瀏覽至您的節點 IP,也就是 external-IP
您的 ingress-nginx-controller
節點 IP:
步驟 3:建立 Windows 設定(選擇性)
如果您有 Windows 節點,您也可以啟用 適用於 Windows 的 flux2 。 你好-arc-windows 範例會使用你好弧形 Windows 容器。
提示
Windows 容器的大小大於Linux容器。 你好-arc-windows 容器的下載最多可能需要 15 分鐘的時間。
為 Windows 節點建立新的命名空間層級設定。
適用於 Windows 的Namespace層級設定
屬性 | 輸入 |
---|---|
設定名稱 | config-helloarc-windows |
Namespace | hello-arc |
範圍 | Namespace |
來源種類 | Git 存放庫 |
存放庫 URL | <分支的 URL> |
參考類型 | 分支 |
分行 | main |
存放庫類型 | 公開 |
同步處理間隔 | 1 |
同步處理逾時 | 10 |
Kustomization | |
執行個體名稱 | app |
路徑 | ./hello-arc-windows/releases/app |
同步處理間隔 | 10 |
同步處理逾時 | 10 |
剪除 | 已啟用 |
Force | 未啟用 |
步驟 4:使用 GitOps 更新您的應用程式
在 azure-arc-jumpstart-apps 存放庫的分支中,瀏覽至 hello-arc > 版本 > 應用程式 > hello-arc.yaml。
選取 [編輯],以對此 YAML 檔案進行變更。 將 replicaCount 變更為 5。 將值變更為 「部署至 AKS Edge Essentials Gitops!
認可這項變更。
注意
因為我們在建立設定時將同步間隔設定為 1 分鐘,Flux會每分鐘從 GitHub 提取變更。
用來
kubectl
查看舊的 Pod 終止,而新的 Pod 上線:kubectl get pods -n hello-arc -w
重新整理您的應用程式,以查看此變更會反映為滾動更新:
如需 GitOps 的詳細資訊,請參閱 Azure Arc Jumpstart 指南。