Share via


教學課程:在已啟用 Azure Arc 的 Kubernetes 上建立 Azure 容器應用程式 (預覽)

在本教學課程中,您會將 容器應用程式建立至已啟用 Azure Arc 的 Kubernetes 叢集 (預覽版),並瞭解如何:

  • 在 Azure Arc 上建立容器應用程式
  • 檢視應用程式的診斷

必要條件

在繼續建立容器應用程式之前,您必須先設定 已啟用 Azure Arc 的 Kubernetes 叢集來執行 Azure Container Apps

新增 Azure CLI 擴充功能

在 Azure Cloud Shell 啟動 Bash 環境。

Launch Cloud Shell in a new window.

接下來,新增必要的 Azure CLI 擴充功能。

警告

下列命令會安裝無法與公用雲端服務搭配使用的自訂 Container Apps 擴充功能。 如果您切換回 Azure 公用雲端,則必須卸載擴充功能。

az extension add --upgrade --yes --name customlocation
az extension remove --name containerapp
az extension add -s https://aka.ms/acaarccli/containerapp-latest-py2.py3-none-any.whl --yes

建立資源群組

為本教學課程中建立的服務建立資源群組。

myResourceGroup="my-container-apps-resource-group"
az group create --name $myResourceGroup --location eastus 

取得自訂位置資訊

從叢集管理員取得下列位置群組、名稱和識別碼。 如需詳細資訊,請參閱 建立自訂位置

customLocationGroup="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
customLocationName="<NAME_OF_CUSTOM_LOCATION>"

取得自訂位置識別碼。

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

擷取連線的環境識別碼

現在您已擁有自訂位置識別碼,您可以查詢已連線的環境。

連線的環境基本上與標準 Container Apps 環境相同,但網路限制是由已啟用 Arc 的基礎 Kubernetes 叢集所控制。

myContainerApp="my-container-app"
myConnectedEnvironment=$(az containerapp connected-env list --custom-location $customLocationId -o tsv --query '[].id')

建立應用程式

下列範例會建立 Node.js 應用程式。

 az containerapp create \
    --resource-group $myResourceGroup \
    --name $myContainerApp \
    --environment $myConnectedEnvironment \
    --environment-type connected \
    --image mcr.microsoft.com/k8se/quickstart:latest \
    --target-port 80 \
    --ingress 'external'

az containerapp browse --resource-group $myResourceGroup --name $myContainerApp

使用 Log Analytics 取得診斷記錄

注意

當您 安裝 Container Apps 擴充功能 以檢視診斷資訊時,需要 Log Analytics 設定。 如果您已安裝沒有 Log Analytics 的擴充功能,請略過此步驟。

流覽至 使用您的 Container Apps 擴充功能 設定的 Log Analytics 工作區,然後選取左側導覽中的 [ 記錄 ]。

執行下列範例查詢,以顯示過去 72 小時內的記錄。

如果在執行查詢時發生錯誤,請在 10-15 分鐘內再試一次。 Log Analytics 可能會延遲從您的應用程式開始接收記錄。

let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"

Kubernetes 叢集中裝載之所有應用程式的應用程式記錄會記錄到名為 ContainerAppConsoleLogs_CL 的自訂記錄資料表中的 Log Analytics 工作區。

  • Log_s 包含指定 Container Apps 擴充功能的應用程式記錄
  • AppName_s 包含容器應用程式名稱。 除了透過應用程式程式碼撰寫的記錄之外, Log_s 資料行也會包含容器啟動和關機的記錄。

您可以在開始使用 Kusto 深入瞭解記錄查詢。

下一步