共用方式為


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

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

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

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

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶
  • 使用已安裝類似 Unix 的作業系統 (例如 Ubuntu、macOS 或 Windows 子系統 Linux 版) 準備本機電腦。
  • 安裝 Azure CLI 2.37.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 來建立資源群組。 此範例會在位置中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 for 應用程式閘道 建立子網。 下列範例會建立名為 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 叢集時,請回到此頁面,如下列螢幕快照所示。

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

設定 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 管理控制台和叢集。 針對這項工作,請遵循 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。 您會發現範例應用程式會顯示 應用程式閘道 輸入控制器所路由傳送的 Pod 私人位址和主機名。

清除資源

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

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

下一步

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