快速入門:從程式碼存放庫將應用程式部署至新的 Azure Kubernetes Service (AKS) Automatic 叢集

適用於: ✔️ AKS 自動化

使用 自動化部署 ,將應用程式從程式碼存放庫建置並部署至新的或現有的 AKS 自動叢集。 自動化部署簡化了建立 GitHub Action 工作流程以建立與部署程式碼的流程。 連線後,每次有新的提交,管線就會自動啟動。 自動化部署建立在 draft.sh 上。當您建立新的部署工作流程時,您可以使用現有的 Dockerfile、產生 Dockerfile、使用現有的 Kubernetes 資訊清單或產生 Kubernetes 資訊清單。 產生的資訊清單在建立時已考慮到安全性和韌性的最佳實務。 AKS Automatic 也包含 pod 準備 SLA ,保證 99.9% 合格的 pod 準備作業在 5 分鐘內完成,確保你的應用擁有可靠且自我修復的基礎設施。

在本快速入門中,您將瞭解:

  • 連線到程式碼儲存庫。
  • 容器化您的應用程式。
  • 設定 Kubernetes 資訊清單。
  • 建立 AKS 自動叢集。
  • 透過提取要求部署應用程式。

開始之前

  • 有個 GitHub 帳號,裡面有應用程式來部署。
  • AKS Automatic 會在你的 AKS 叢集上啟用 Azure 原則,但你應該在訂閱中預先註冊資源提供者,以便更順利地使用。 更多資訊請參閱 Azure 資源提供者及類型。

這很重要

從 AKS 1.36 開始,新的 AKS Automatic 叢集預設將啟用 透過應用程式路由附加元件提供的 Kubernetes Gateway API,而非 使用應用程式路由附加元件的受控 NGINX 輸入,這是因為上游的 Ingress NGINX 退場。

現有的自動叢集不會受影響,但應該會開始透過 應用程式路由外掛開始遷移到 Kubernetes Gateway API。

局限性

AKS 自動叢集適用以下限制:

  • AKS Automatic 已在下列區域正式推出:australiacentral、australiaeast、northcentralus、centralus、westus2、northeurope、chilecentral、westus、newzealandnorth、centralindia、westeurope、norwayeast、canadaeast、westcentralus、mexicocentral、canadacentral、ukwest、uksouth、uaenorth、swedencentral、switzerlandnorth、spaincentral、southeastasia、southindia、southcentralus、polandcentral、southafricanorth、malaysiawest、koreacentral、koreasouth、japanwest、italynorth、japaneast、israelcentral、indonesiacentral、australiasoutheast、germanywestcentral、francecentral、austriaeast、eastus2、eastus、brazilsouth、belgiumcentral、denmarkeast、eastasia、westus3。
  • 新的 AKS 自動叢集預設啟用管理系統節點池與 LocalDNS。 你無法在任何區域建立 AKS 自動叢集,除非有管理系統的節點池。
  • AKS 自動叢集預先設定了 node resource group lockdown,這不允許更改 MC_ 資源群,導致預設 私用 DNS 區域無法建立虛擬網路連結。 對於跨 VNet 或自訂 DNS 情境,請依照在自訂虛擬網路中建立私有 Azure Kubernetes 服務 (AKS) 自動叢集的步驟,使用自訂網路和私人 DNS。
  • Azure CLI 版本 2.86.0 或更新版本是必須的。 要找到版本,請執行 az --version 指令。 如果您需要安裝或升級,請參閱 安裝 Azure CLI。
  • 以下擴充功能不被支援:
  • Windows 節點不被支援。
  • 不支援從 AKS 基礎 SKU 遷移到自動 SKU。
  • 在有管理系統節點池的地區,預覽版中支援從現有 AKS Automatic 叢集(不含管理系統節點池)遷移到 AKS Automatic 並管理系統節點池的遷移。 不支援從具有受控系統節點集區的 AKS Automatic 遷移回不具有受控系統節點集區的 AKS Automatic。

帶上您的應用程式原始程式碼

要從程式碼庫部署應用程式,請從 Azure portal 首頁開始。

螢幕擷取畫面顯示在 Kubernetes 服務建立功能表上選取 [部署應用程式]。

  1. 在頂端搜尋列中搜尋 Kubernetes 服務 。
  2. 在搜尋結果中選擇 Kubernetes services。
  3. 選取 [ 建立 ] 按鈕,然後選取 [部署應用程式]。

連線到原始程式碼儲存庫

建立和自動化部署工作流程,並授權其連線到所需的原始程式碼存放庫。

  1. 在 [基本] 索引標籤中,選取 [部署您的應用程式]。
  2. 在Project詳細資料中,選擇訂閱、資源群組,以及區域。
  3. 在 Repository details 輸入工作流程名稱,然後選擇 Authorize access 連接所需的 GitHub 儲存庫。
  4. 選擇 儲存庫 和 分支。
  5. 選取下一步按鈕。

選擇容器映像組態

若要讓應用程式為 Kubernetes 做好準備,您需要將其建置到容器映像中,並儲存到容器登錄中。 您可以使用 Dockerfile 來提供如何建置容器映像的指示。 如果您的原始程式碼儲存庫還沒有 Dockerfile,自動化部署可以為您產生一個 Dockerfile,否則,您可以使用現有的 Dockerfile。

使用自動化部署(Automated Deployments)為多種語言與框架產生 Dockerfile,如 Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift 和 Rust。 語言支援是建立在 draft.sh 中可用的內容之上。

  1. 選取 [自動容器化 (產生 Dockerfile) ] 作為容器設定。
  2. 選取儲存庫中 儲存所產生的 Dockerfile 的位置 。
  3. 從支援的語言和架構清單中選擇 應用程式環境 。
  4. 輸入 應用程式連接埠。
  5. 選擇現有的 Azure Container Registry 或建立新的。 此登錄用於儲存建置的應用程式映像。 AKS 自動叢集的 kubelet 身分識別已被授與該登錄的 AcrPull 權限。

選擇 Kubernetes 資訊清單組態

在 Kubernetes 上執行的應用程式由許多 Kubernetes 基本元件組成。 這些元件會描述要使用的容器映像、要執行的複本數目、是否需要公開應用程式的公用 IP 等。如需詳細資訊,請參閱官方 Kubernetes 文件。 如果您的原始程式碼儲存庫還沒有要部署的基本 Kubernetes 資訊清單,自動化部署可以為您產生資訊清單,否則,您可以使用一組現有的資訊清單。 您也可以選擇現有的 Helm 圖表。

使用自動化部署產生一組基本 Kubernetes 資訊清單檔案,讓您的應用程式啟動並執行。 目前,Automated Deployments 會建立 Deployment、 Service和 ConfigMap。

產生的資訊清單旨在套用 部署保護措施的建議,例如:

若要產生 Kubernetes 資訊清單:

  1. 選取 [產生應用程式部署檔案] 以取得部署選項。
  2. 輸入 應用程式連接埠。 此埠用於生成的Service。
  3. 選取儲存庫中 儲存所產生的 Kubernetes 資訊清單 的位置。
  4. 選取下一步按鈕。

選取您要部署應用程式的位置

如果您還沒有叢集,您可以在此部署中建立新的 AKS 自動叢集。

  1. 選取 [建立自動 Kubernetes 叢集] 以取得叢集組態。
  2. 輸入 叢集名稱。
  3. 選擇 自動升級維護排程 ,或保留選取預設值。
  4. 輸入部署應用程式的 Kubernetes 命名空間 。
  5. 選擇 監控和記錄層級 ,或保留預設值選取。
  6. 選取下一步按鈕。

檢查設定並部署

檢閱叢集、應用程式和 Kubernetes 資訊清單的設定,然後選取 [部署]。 建立叢集需要幾分鐘的時間,請勿離開部署頁面。

螢幕擷取畫面顯示 部署應用程式。

  1. 系統會建立新的 AKS 自動叢集,或設定現有的叢集。
  2. 已建立容器登錄,或將現有的容器登錄與叢集進行配置。
  3. 建立聯盟憑證是為了讓 GitHub Action 工作流程能部署到叢集。
  4. 提取請求會在程式碼儲存庫上建立,其中包含任何產生的檔案和工作流程。

檢閱和合併提取要求

部署成功時,請選取 [ 檢視提取要求 ] 按鈕,以檢視程式碼存放庫上所產生提取要求的詳細資料。

GitHub 上拉取請求的截圖。

  1. 檢閱 「檔案已變更」 下的變更,並進行任何所需的編輯。
  2. 選取 [合併提取要求] ,將變更合併到您的程式碼存放庫中。

合併變更會執行 GitHub Actions 的工作流程,將你的應用程式建置成容器映像,儲存在 Azure Container Registry,然後部署到叢集。

截圖顯示GitHub Actions進行中的工作流程。

檢查已部署的資源

管線完成後,您可以在 Azure 入口網站中,選取服務功能表中 [Kubernetes 資源]Service底下的 [服務和輸入],來檢閱已建立的 Kubernetes 。

服務和入口窗格的螢幕擷取畫面。

選取 [外部 IP] 應該會開啟一個包含執行中應用程式的新瀏覽器頁面。

顯示 Contoso Air 應用程式執行中的螢幕擷取畫面。

刪除資源

完成叢集後,可以刪除它以避免產生 Azure 費用。

  1. 在 Azure 入口網站中,導覽到你的資源群組。
  2. 選擇 ,刪除資源群組。
  3. 輸入資源群組的名稱以確認刪除,然後選取 [刪除]。
  4. 在 [刪除確認 ] 對話方塊中,選取 [刪除]。

後續步驟

在本快速入門中,您使用 AKS 自動 將應用程式部署至 Kubernetes 叢集,並從程式碼存放庫設定持續整合/持續部署 (CI/CD) 管線。

若要深入瞭解 AKS Automatic,請繼續進行簡介。