教學課程:將 Oracle WebLogic Server 遷移至自定義虛擬網路內的 Azure Kubernetes Service

本教學課程說明如何在 Azure Kubernetes Service (AKS) 供應專案上部署 Oracle WebLogic Server (WLS),該供應專案會與取用者訂用帳戶中的自定義虛擬網路整合。 AKS 供應專案的 WLS 可讓您決定是否要建立新的虛擬網路或使用現有的虛擬網路。

在本教學課程中,您會了解如何:

  • 建立自定義虛擬網路,並在網路內建立基礎結構。
  • 在自定義虛擬網路中的 AKS 上執行 Oracle WebLogic Server。
  • 使用 Azure 應用程式閘道 作為負載平衡器公開 Oracle WebLogic Server。
  • 驗證成功的部署。

必要條件

  • 如果您沒有 Azure 訂用帳戶,請在開始之前建立 免費帳戶

  • 使用 Bash 環境使用 Azure Cloud Shell ;請確定 Azure CLI 版本為 2.37.0 或更新版本。

    Launch Cloud Shell in a new window

  • 如果您想要的話, 請安裝 Azure CLI 2.37.0 或更新版本 以執行 Azure CLI 命令。

    • 如果您使用本機安裝,請使用 az login 命令以 Azure CLI 登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 登入。
    • 出現提示時,請在第一次使用時安裝 Azure CLI 擴充功能。 如需延伸模組詳細資訊,請參閱使用 Azure CLI 延伸模組
    • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade
  • AKS 市集供應專案的 WLS 需要建立使用者指派受控識別並指派 Azure 角色的許可權。 若要指派 Azure 角色,您必須具有Microsoft.Authorization/roleAssignments/write許可權,例如使用者存取 管理員 istratorOwner

  • Oracle 帳戶。 Oracle Container Registry 中的步驟會引導您接受 WebLogic Server 映射的許可協定。 記下您的 Oracle 帳戶密碼和電子郵件。

建立資源群組

使用 az group create 建立資源群組。 此範例會在位置中eastus建立名為 myResourceGroup 的資源群組:

export RESOURCE_GROUP_NAME="myResourceGroup"
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

建立自定義虛擬網路

建立自定義虛擬網路時有條件約束。 在環境中建立虛擬網路之前,請閱讀下列文章:

本節中的範例會建立具有位址空間192.168.0.0/16的虛擬網路,並建立兩個用於 AKS 和 應用程式閘道 的子網。

首先,使用 az network vnet create 建立虛擬網路。 下列範例會建立名為 myVNet的預設虛擬網路:

az network vnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myVNet \
    --address-prefixes 192.168.0.0/16

接下來,使用 az network vnet subnet create 建立 AKS 叢集的子網。 下列範例會建立名為 myAKSSubnet的子網:

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAKSSubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.1.0/24

接下來,使用 az network vnet subnet create 建立 應用程式閘道 的子網。 下列範例會建立名為 myAppGatewaySubnet的子網:

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAppGatewaySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.2.0/24

接下來,使用下列命令來取得 AKS 子網資源識別碼,並將其儲存在變數中,以供本文稍後使用:

export AKS_SUBNET_ID=$(az network vnet subnet show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --vnet-name myVNet \
    --name myAKSSubnet \
    --query id \
    --output tsv)

在虛擬網路中建立 AKS 叢集

使用下列命令,使用 az aks create 命令,在您的虛擬網路和子網中建立 AKS 叢集。

注意

此範例會使用 kubenet 和系統指派的身分識別來建立 AKS 叢集。 Azure CLI 會在建立叢集之後,將網路參與者角色授與系統指派的身分識別。

如果您想要使用 Azure CNI,請參閱 在 AKS 中設定 Azure CNI 網路功能,以建立 已啟用 Azure CNI 的 AKS 叢集。

如果您想要使用使用者指派的受控識別,請參閱 建立具有系統指派受控識別的 AKS 叢集。

az aks create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAKSCluster \
    --generate-ssh-keys \
    --enable-managed-identity \
    --node-count 3 \
    --network-plugin kubenet \
    --vnet-subnet-id $AKS_SUBNET_ID \
    --yes

將 Java EE 應用程式儲存在 儲存體 帳戶中

您可以部署 Java EE 應用程式以及 AKS 供應專案部署上的 WLS。 您必須將應用程式檔 (.war.ear.jar) 上傳至預先存在的 Azure 儲存體 帳戶,並 儲存體 該帳戶內的容器。

使用 az storage account create 命令建立 Azure 儲存體 帳戶,如下列範例所示:

export STORAGE_ACCOUNT_NAME="stgwlsaks$(date +%s)"
az storage account create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${STORAGE_ACCOUNT_NAME} \
    --location eastus \
    --sku Standard_RAGRS \
    --kind StorageV2

使用 az storage container create 命令建立用來儲存 Blob 的容器。 下列範例會使用記憶體帳戶密鑰來授權作業來建立容器。 您也可以使用 Microsoft Entra 帳戶來授權作業來建立容器。 如需詳細資訊,請參閱 使用 Azure CLI 授權 Blob 或佇列數據的存取權。

export KEY=$(az storage account keys list \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --query [0].value \
    --output tsv)

az storage container create \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --name mycontainer \
    --account-key ${KEY} \
    --auth-mode key

接下來,使用 az storage blob upload 命令,將您的 Java EE 應用程式上傳至 Blob。 下列範例會 上傳testwebapp.war 測試應用程式。

curl -fsL https://aka.ms/wls-aks-testwebapp -o testwebapp.war

az storage blob upload \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --container-name mycontainer \
    --name testwebapp.war \
    --file testwebapp.war \
    --account-key ${KEY} \
    --auth-mode key

若要同時上傳多個檔案,請參閱 使用 Azure CLI 建立、下載及列出 Blob。

在 AKS 供應專案上部署 WLS

本節說明如何使用您先前建立的 AKS 實例布建 WLS 叢集。 您將使用 Azure 應用程式閘道 作為負載平衡器,在自定義虛擬網路內布建叢集,並導出叢集節點。 供應專案會自動產生自我簽署憑證,以用於 應用程式閘道 TLS/SSL 終止。 如需使用 應用程式閘道 的 TLS/SSL 終止進階用法,請參閱 應用程式閘道 輸入控制器

首先,如 AKS 上的 Oracle WebLogic Server 使用者指南中所述,開始部署 WebLogic Server 的程式,但當您觸達設定 AKS 叢集時,請回到此頁面,如下列螢幕快照所示。

Screenshot of Azure portal showing the Configure AKS cluster pane of the Create Oracle WebLogic Server on Azure Kubernetes Service page.

設定 AKS 叢集

既然您已在虛擬網路內擁有 AKS 叢集,請選取部署的 AKS 叢集。

  1. 針對 [建立新的 AKS 叢集?],選取 [ ]。
  2. 在 [選取 AKS 叢集] 下,開啟下拉菜單,然後選取您建立的 AKS 叢集,在此範例中命名myAKSCluster
  3. 針對 [使用預先存在的 WebLogic Server Docker 映射從 Oracle Container Registry?],選取 [ ]。
  4. 針對 [建立新的 Azure Container Registry 以儲存應用程式映射?],選取 [ ]。
  5. 在 [ Oracle 單一登錄驗證的用戶名稱] 下,輸入您的 Oracle 單一登錄帳戶用戶名稱。
  6. 在 [Oracle 單一登錄驗證的密碼] 下,輸入該帳戶的密碼。
  7. 在 [確認密碼] 下,重新輸入前一個字段的值。
  8. 針對 [ 選取所需的 WebLogic Server、JDK 和操作員系統或完整 Docker 標籤的組合],保留預設值。
  9. 針對 [ 部署您的應用程式套件],選取 [ ]。
  10. 針對 [應用程式套件] [.war,.ear,.jar],選取 [ 瀏覽]。
    • 選取您建立的記憶體帳戶。 這個範例中的名稱開頭 stgwlsaks 為 。
    • 在 [容器] 頁面中選取您的容器。 這個範例會使用 mycontainer
    • 檢查容器中所列的應用程式。 此範例使用 testwebapp.war
    • 選取選取
  11. 針對其他欄位,保留預設值。

您現在已完成設定 AKS 叢集、WebLogic 基底映像和 Java EE 應用程式。

接下來,您會在 [TLS/SSL 設定] 窗格中,使用您自己的憑證,在 HTTPS (安全) 埠上,將端對端 TLS/SSL 設定為 WebLogic Server 管理員 istration 控制台和叢集。 針對這項工作,請遵循 AKS 使用者指南上的 Oracle WebLogic Server 中的步驟,但在您連線到網路時返回此頁面,如下列螢幕快照所示。 您將使用下一節來設定網路功能,然後返回 AKS 上的 WLS 使用者指南來完成部署。

Screenshot of Azure portal showing the Networking pane of the Create Oracle WebLogic Server on Azure Kubernetes Service page.

設定 應用程式閘道 輸入控制器

使用下列步驟來設定虛擬網路內的 應用程式閘道 輸入控制器。

  1. 若要 連線 Azure 應用程式閘道?,請選取 []。
  2. 在 [設定虛擬網络] 底下,針對 [虛擬網络],選取您建立的虛擬網络。 這個範例 myVNet 會在 中使用 myResourceGroup。 針對 [子網],選取 應用程式閘道 的子網。 這個範例會使用 myAppGatewaySubnet
  3. 針對 [ 選取所需的 TLS/SSL 憑證] 選項,選取 [ 產生自我簽署的前端憑證]。
  4. 針對 [建立 管理員 istration Console 的輸入],選取 [] 以公開 WebLogic 管理員 istration Console。
  5. 針對其他欄位,保留預設值。

您現在可以繼續進行 WLS 部署的其他層面,如 AKS 上的 Oracle WebLogic Server 使用者指南中所述

驗證 WLS 的成功部署

本節說明如何快速驗證 WLS 叢集的成功部署,以及 應用程式閘道 輸入控制器。

部署完成之後,選取 [ 輸出]。 您會發現 WebLogic 管理員 istration Console 和叢集的外部 URL。 使用下列指示來存取這些資源:

  • 若要檢視 WebLogic 管理員 istration 控制台,請先複製輸出變數adminConsoleExternalUrl的值。 接下來,將值貼到瀏覽器網址列中,然後按 Enter 以開啟 WebLogic 管理員 istration Console 的登入頁面。
  • 若要檢視 WebLogic 叢集,請先複製輸出變數 clusterExternalUrl的值。 接下來,使用此值來建構範例應用程式 URL,方法是將它套用至下列範本: ${clusterExternalUrl}testwebapp/。 現在,將應用程式 URL 貼到瀏覽器網址列中,然後按 Enter。 您會發現範例應用程式會顯示 應用程式閘道 輸入控制器所路由傳送的 Pod 私人位址和主機名。

清除資源

如果您不打算繼續使用 WLS 叢集,請使用下列 Azure 入口網站 步驟刪除虛擬網路和 WLS 叢集:

  1. 瀏覽資源群組 myResourceGroup的概觀頁面,然後選取 [ 刪除資源群組]。
  2. 請流覽您在 AKS 供應專案上部署 WLS 的資源群組概觀頁面,然後選取 [ 刪除資源群組]。

下一步

繼續探索在 Azure 上執行 WLS 的選項。