共用方式為


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

本教學課程說明如何在 Azure Kubernetes Service (AKS) 供應專案上部署 Oracle WebLogic Server (WLS),該供應專案會與您的訂用帳戶中預先存在的虛擬網路整合。

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

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

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶
  • 使用已安裝類似 Unix 的作業系統 (例如 Ubuntu、macOS 或 Windows 子系統 Linux 版) 準備本機電腦。
  • 安裝 Azure CLI 2.73.0 或更新版本以執行 Azure CLI 命令。
    • 使用 az login 命令以 Azure CLI 登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 登入 Azure。
    • 出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需延伸模組的詳細資訊,請參閱透過 Azure CLI 使用和管理延伸模組 (部分機器翻譯)。
    • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade
  • AKS 市集供應專案的 WLS 需要建立使用者指派受控識別並指派 Azure 角色的許可權。 若要指派 Azure 角色,您必須擁有 Microsoft.Authorization/roleAssignments/write 權限,例如使用者存取系統管理員 (部分機器翻譯) 或擁有者 (部分機器翻譯)。
  • Oracle 帳戶。 Oracle Container Registry 中的步驟會引導您接受 WebLogic Server 映射的許可協定。 記下您的 Oracle 帳戶密碼和電子郵件。

建立資源群組

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

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

建立自定義虛擬網路

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

本節中的範例會建立具有位址空間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 \
    --location ${LOCATION}

接下來,使用 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 叢集。

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

將 Jakarta EE 應用程式儲存在記憶體帳戶中

您可以在包含 WLS 的 AKS 供應專案環境中部署 Jakarta EE 應用程式。 您必須將應用程式檔 (.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 ${LOCATION} \
    --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 命令,將您的 Jakarta 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 窗格時,請回到此頁面,如下列螢幕快照所示。

Azure 入口網站 的螢幕快照,其中顯示 [在 Azure Kubernetes Service 上建立 Oracle WebLogic Server] 頁面上的 [設定 AKS 叢集] 窗格。

設定 AKS 叢集

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

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

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

接下來,您會設定負載平衡。 針對這項工作,請繼續遵循 AKS 使用者指南上的 Oracle WebLogic Server 中的步驟,但在達到 負載平衡時回到此頁面,如下列螢幕快照所示。 您可以使用下一節來設定負載平衡,然後返回 AKS 上的 WLS 使用者指南來完成部署。

Azure 入口網站 螢幕快照,其中顯示 Azure Kubernetes Service 頁面上 [建立 Oracle WebLogic Server] 頁面的網路窗格。

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

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

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

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

驗證 WLS 的成功部署

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

部署完成之後,選取 [ 輸出],然後尋找 WebLogic 管理控制台和叢集的外部 URL。 使用下列指示來存取這些資源:

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

清除資源

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

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

下一步

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