適用於: ✔️ 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 服務 。
- 在搜尋結果中選擇 Kubernetes services。
- 選取 [ 建立 ] 按鈕,然後選取 [部署應用程式]。
連線到原始程式碼儲存庫
建立和自動化部署工作流程,並授權其連線到所需的原始程式碼存放庫。
- 在 [基本] 索引標籤中,選取 [部署您的應用程式]。
- 在Project詳細資料中,選擇訂閱、資源群組,以及區域。
- 在 Repository details 輸入工作流程名稱,然後選擇 Authorize access 連接所需的 GitHub 儲存庫。
- 選擇 儲存庫 和 分支。
- 選取下一步按鈕。
選擇容器映像組態
若要讓應用程式為 Kubernetes 做好準備,您需要將其建置到容器映像中,並儲存到容器登錄中。 您可以使用 Dockerfile 來提供如何建置容器映像的指示。 如果您的原始程式碼儲存庫還沒有 Dockerfile,自動化部署可以為您產生一個 Dockerfile,否則,您可以使用現有的 Dockerfile。
使用自動化部署(Automated Deployments)為多種語言與框架產生 Dockerfile,如 Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift 和 Rust。 語言支援是建立在 draft.sh 中可用的內容之上。
- 選取 [自動容器化 (產生 Dockerfile) ] 作為容器設定。
- 選取儲存庫中 儲存所產生的 Dockerfile 的位置 。
- 從支援的語言和架構清單中選擇 應用程式環境 。
- 輸入 應用程式連接埠。
- 選擇現有的 Azure Container Registry 或建立新的。 此登錄用於儲存建置的應用程式映像。 AKS 自動叢集的 kubelet 身分識別已被授與該登錄的
AcrPull權限。
選擇 Kubernetes 資訊清單組態
在 Kubernetes 上執行的應用程式由許多 Kubernetes 基本元件組成。 這些元件會描述要使用的容器映像、要執行的複本數目、是否需要公開應用程式的公用 IP 等。如需詳細資訊,請參閱官方 Kubernetes 文件。 如果您的原始程式碼儲存庫還沒有要部署的基本 Kubernetes 資訊清單,自動化部署可以為您產生資訊清單,否則,您可以使用一組現有的資訊清單。 您也可以選擇現有的 Helm 圖表。
使用自動化部署產生一組基本 Kubernetes 資訊清單檔案,讓您的應用程式啟動並執行。 目前,Automated Deployments 會建立 Deployment、 Service和 ConfigMap。
產生的資訊清單旨在套用 部署保護措施的建議,例如:
- 自動產生活躍度、整備度和啟動探查。
- 為提升復原能力,建議優先採用 Pod 反親和性與拓撲分散條件約束,將複本分散到不同的節點上。
- 強制執行
RuntimeDefault安全運算設定檔 ,以建立額外的保護層,防止惡意行為者利用的常見系統呼叫弱點。 - 卸除所有 Linux 功能,只允許遵循基準 Kubernetes Pod 安全性標準的有限集合。
若要產生 Kubernetes 資訊清單:
- 選取 [產生應用程式部署檔案] 以取得部署選項。
- 輸入 應用程式連接埠。 此埠用於生成的
Service。 - 選取儲存庫中 儲存所產生的 Kubernetes 資訊清單 的位置。
- 選取下一步按鈕。
選取您要部署應用程式的位置
如果您還沒有叢集,您可以在此部署中建立新的 AKS 自動叢集。
- 選取 [建立自動 Kubernetes 叢集] 以取得叢集組態。
- 輸入 叢集名稱。
- 選擇 自動升級維護排程 ,或保留選取預設值。
- 輸入部署應用程式的 Kubernetes 命名空間 。
- 選擇 監控和記錄層級 ,或保留預設值選取。
- 選取下一步按鈕。
檢查設定並部署
檢閱叢集、應用程式和 Kubernetes 資訊清單的設定,然後選取 [部署]。 建立叢集需要幾分鐘的時間,請勿離開部署頁面。
- 系統會建立新的 AKS 自動叢集,或設定現有的叢集。
- 已建立容器登錄,或將現有的容器登錄與叢集進行配置。
- 建立聯盟憑證是為了讓 GitHub Action 工作流程能部署到叢集。
- 提取請求會在程式碼儲存庫上建立,其中包含任何產生的檔案和工作流程。
檢閱和合併提取要求
部署成功時,請選取 [ 檢視提取要求 ] 按鈕,以檢視程式碼存放庫上所產生提取要求的詳細資料。
- 檢閱 「檔案已變更」 下的變更,並進行任何所需的編輯。
- 選取 [合併提取要求] ,將變更合併到您的程式碼存放庫中。
合併變更會執行 GitHub Actions 的工作流程,將你的應用程式建置成容器映像,儲存在 Azure Container Registry,然後部署到叢集。
檢查已部署的資源
管線完成後,您可以在 Azure 入口網站中,選取服務功能表中 [Kubernetes 資源]Service底下的 [服務和輸入],來檢閱已建立的 Kubernetes 。
選取 [外部 IP] 應該會開啟一個包含執行中應用程式的新瀏覽器頁面。
刪除資源
完成叢集後,可以刪除它以避免產生 Azure 費用。
- 在 Azure 入口網站中,導覽到你的資源群組。
- 選擇 ,刪除資源群組。
- 輸入資源群組的名稱以確認刪除,然後選取 [刪除]。
- 在 [刪除確認 ] 對話方塊中,選取 [刪除]。
後續步驟
在本快速入門中,您使用 AKS 自動 將應用程式部署至 Kubernetes 叢集,並從程式碼存放庫設定持續整合/持續部署 (CI/CD) 管線。
若要深入瞭解 AKS Automatic,請繼續進行簡介。