將 ASP.NET Web 應用程式現代化至 Azure Kubernetes Service (預覽)
本文顯示如何使用 Azure Migrate 以將 ASP.NET Web 應用程式大規模移轉至 Azure Kubernetes Service。 目前,此流程僅支援 VMware 上執行的 ASP.NET Web 應用程式。 若為其他環境,遵循這些步驟。
注意
教學課程將會針對案例示範最簡單的部署路徑,讓您可以快速設定概念證明。 教學課程在情況允許時都會使用預設選項,且不會顯示所有可能的設定與路徑。
在本教學課程中,您將了解如何:
- 選擇 ASP.NET Web 應用程式,並使用 Azure Migrate 中的整合式流程準備將其大規模移轉至 Azure Kubernetes Service。
- 設定目標設定,例如要執行和複寫應用程式的應用程式執行個體數目。
- 執行測試移轉,以確定您的應用程式正確啟動。
- 執行您的應用程式到 AKS 的完整移轉。
必要條件
開始本教學課程之前,您應該解決下列項目:
限制
- 您可以使用 Microsoft .NET Framework 3.5 或更新版本移轉 ASP.NET 應用程式。
- 您可以移轉執行 Windows Server 2012 R2 或更新版本的應用程式伺服器 (應用程式伺服器應該執行 PowerShell 5.1 版)。
- 應用程式應該執行 Internet Information Services (IIS) 7.5 或更新版本。
啟用複寫
評估 Web 應用程式後,即可使用 Azure Migrate 中的整合式移轉流程來進行移轉。 此程序中的第一個步驟是設定並開始複寫 Web 應用程式。
指定意圖
導覽至您的 Azure Migrate 專案 > [伺服器、資料庫和 Web 應用程式] > [移轉工具] > [移轉和現代化],然後選取 [複寫]。
在 [指定意圖] 索引標籤 > [您要移轉的項目?],從下拉式清單中選取 [ASP.NET Web 應用程式]。
在 [您要移轉至何處?] 中,選取 [Azure Kubernetes Service (AKS)]。
在 [虛擬化] 類型中,選取 [VMware vSphere]。
在 [內部部署設備] 中,選擇在 vSphere 上探索到所需 Web 應用程式的設備。
選取 [繼續]。
從探索到的應用程式中選擇
在 [複寫] > [Web 應用程式] 中,您可以看到環境中探索到的 ASP.NET 應用程式清單。
選擇應該複寫的一或多個應用程式。
[現代化狀態] 資料行會指出應用程式在 AKS 上執行的整備程度。 這可以採用下列其中一個值 - [就緒]、[錯誤]、[複寫進行中]。
選取應用程式,然後選取 [應用程式設定] 連結,以開啟 [應用程式設定] 索引標籤。這會提供從探索到的設定檔偵測到的屬性清單。 輸入必要的屬性值,然後選取 [儲存]。 這些組態會直接儲存在目標叢集上作為祕密,或可以使用 Azure Key Vault 掛接。 這可以在進階設定中設定。
選取應用程式,然後選取 [應用程式目錄] 連結以開啟 [應用程式目錄] 索引標籤。提供需要複製以供應用程式執行的資料夾/檔案的路徑,然後選取 [儲存]。 根據從下拉式清單選取的選項,這些成品會直接複製到容器映像,或透過 Azure 檔案共用掛接為叢集上的持續性磁碟區。 如果您選擇永續性磁碟區,則可以在進階設定中設定目標。
針對使用 Windows 驗證的應用程式 (透過驗證類型表示),您可以在目標 AKS 叢集上設定 gMSA V2。
設定 註解 帳戶名稱 要使用的 gMSA 帳戶名稱。 如果帳戶不存在,系統會自動建立具有此名稱的新帳戶。 帳戶使用者名稱 經授權可存取網域控制站上設定之 gMSA 的標準網域使用者名稱。 如果指定的使用者名稱不存在,系統會自動建立新的標準網域使用者。 帳戶密碼 上述使用者的密碼。 網域 DNS 伺服器 DNS 伺服器的 IP 位址,可解析您的 Active Directory 網域名稱。 網域 FQDN Active Directory 網域的完整網域名稱。 網域控制站位址 Active Directory 網域控制站的 IP 位址。 建立連線即可遠端允許指定網域使用者擷取指定的 gMSA 認證。 網域管理使用者名稱 具有足夠權限可以遠端驗證 gMSA 帳戶和網域使用者的使用者名稱。 網域管理員密碼 上述管理使用者的密碼。 選取 [下一步]。
注意
應用程式設定與應用程式目錄的來源路徑和屬性值的長度必須低於 3000 個字元。 這大約可以轉譯為字元長度各約 200 的 15 個項目 (包括設定和目錄)。
設定目標設定
在 [複寫] > [目標設定] 中,您可以設定將應用程式移轉至其中的目標。
- 選擇應將應用程式容器映像推送至其中的訂用帳戶、資源群組和容器登錄資源。
- 選擇應部署應用程式的訂用帳戶、資源群組和 AKS 叢集資源。
- 選取 [下一步]。
注意
只會列出具有 Windows 節點的 AKS 叢集。
設定部署設定
在 [複寫] > [部署設定] 中,您可以在 AKS 叢集上設定應用程式。
- 預設值會根據應用程式探索提供。
- 在 [複本] 選項中,選擇每個應用程式的應用程式執行個體數目。
- 在 [負載平衡器] 選項中,如果應用程式需要透過網際網路存取,請選擇 [外部]。 如果您選擇 [內部],則應用程式只能在 AKS 叢集的虛擬網路內存取。
- 選取 [下一步]。
- 配置進階設定
如果 [複寫] > [Web 應用程式] 中有一或多個應用程式設定或目錄更新,則會使用 [複寫] > [進階] 來提供額外的必要設定。
- 如果已提供應用程式設定,則請選擇將其儲存為原生 Kubernetes 祕密,或使用祕密存放區 CSI 驅動程式儲存在 Azure Key Vault 上。 確定目標叢集已啟用祕密存放區驅動程式附加元件。
- 如果已提供應用程式目錄的永續性儲存體選項,請選取用來儲存這些檔案的 Azure 檔案共用。
- 選取 [下一步]。
檢閱並開始複寫
瀏覽至 [複寫] 索引標籤上的右側索引標籤,以檢閱您的選取項目並進行任何必要的變更。檢閱之後,選取 [複寫]。
為移轉做準備
開始複寫之後,Azure Migrate 會建立可從專案存取的複寫工作。
瀏覽至目標資源
導覽至您的 Azure Migrate 專案 > [伺服器、資料庫和 Web 應用程式] > [移轉工具] > [移轉和現代化],然後選取 [概觀]。
選取 [Azure Migrate:伺服器移轉] 中樞 > [現代化 (預覽)] > [工作]。
選取 [Azure Kubernetes Service (AKS)] 作為複寫目標。 Azure Migrate 會為每個複寫的 ASP.NET 應用程式建立一個複寫工作。 選取 [工作負載部署] 類型的 [建立或更新工作負載部署] 工作。
選取 [目標] 資源。 您可以在這裡設定所有移轉前步驟。
複寫完成之後,[複寫狀態] 將會是 [已完成],而整體 [狀態] 將會是 [映像建置擱置中]。
檢閱容器映像和 Kubernetes 資訊清單
在 [目標設定] 索引標籤中,會提供 Docker 檔案的連結和 Kubernetes 資訊清單。
選取 [Docker 檔案] 檢閱連結以開啟編輯器。 視需要檢閱並進行變更。 選取 [儲存]。
選取 [部署規格] 檢閱連結以開啟編輯器。 這包含 Kubernetes 資訊清單檔案,包含將部署的所有資源,包括
StatefulSet
、Service
、ServiceAccount
等。請檢閱,並視需要進行變更。 選取 [儲存]。在 [概觀] 索引標籤中,選取 [建置容器映像] 以建置容器映像,並將其推送至所提供的容器登錄。
建置映像之後,整體 [狀態] 將會變更為 [準備好移轉]。
執行測試移轉
備妥容器映像後,執行測試移轉,以確保應用程式可在 AKS 上正確運作。
- 在 [概觀] 索引標籤中,選取 [測試移轉],然後選取 [是] 以確認。
- 測試移轉完成後,請驗證工作負載正在 AKS 叢集上執行。 如果在複寫程序期間選擇外部負載平衡器選項,則您的應用程式應該透過具有所指派公用 IP 位址的服務類型
loadbalancer
以向網際網路公開。 - 驗證應用程式正常運作之後,請選取 [清除測試移轉] 來清除測試移轉。
如果測試移轉失敗:
導覽至 [Azure Migrate:伺服器移轉] 中樞 > [現代化 (預覽)] > [工作]。
選取失敗的 [起始測試移轉] 工作。
選取失敗的工作連結,以查看可能的失敗原因和建議。
移轉您的應用程式至 AKS
應用程式終於準備好進行移轉:
在 [概觀] 索引標籤中,選取 [移轉],然後選取 [是] 以確認。
類似於測試移轉工作流程,請驗證工作負載正在 AKS 叢集上執行。
應用程式現在已成功移轉。 如果您想要讓設備再次探索,並讓其可供移轉,則請選取 [完成移轉]。
下一步
成功將應用程式移轉至 AKS 後,即可探索下列各文章,打造雲端專用的最佳化應用程式:
- 使用 Azure Pipelines、GitHub Actions 或透過 GitOps 來設定 CI/CD。
- 使用 Azure 監視器來監視 AKS 和您應用程式的健康情況和效能。
- 使用適用於容器的 Microsoft Defender,以強化 AKS 叢集和容器的安全性態勢。
- 將 Windows Dockerfile 最佳化。
- 檢閱並實作最佳做法,以在 AKS 上建置和管理應用程式。