在這個快速入門中,你會使用 Azure Resource Manager(ARM)範本來建立一個 Azure Kubernetes Service (AKS) 叢集,該叢集以 Azure Container Linux (ACL) 作為節點作業系統(OS)執行。 安裝前置條件後,建立一對 SSH 金鑰,檢視範本,部署範本,然後連接到叢集。
Azure Container Linux (ACL) 考慮事項與限制
在開始之前,請先回顧以下關於ACL的考量與限制:
- ACL 通常從 AKS v1.34 開始提供。
- ACL 需要啟用 Trusted Launch,並搭配安全開機和 vTPM。 無法取得非可信啟動變體。
- 在 Arm64 上,ACL 若要啟用 Trusted Launch 相容性,必須使用 Cobalt 型(v6)SKU。
-
NodeImage並且None是唯一支援的 作業系統升級通道。Unmanaged且SecurityPatch因目錄不可變/usr而與 ACL 不相容。 - 不支援工件串流。
- 不支援 Pod 沙箱。
- 不支援機密虛擬機器 (CVM)。
- 第一代虛擬機不被支援。
先決條件
Note
你可以使用 Azure Cloud Shell或本地安裝 Azure CLI 來執行這個快速啟動中的指令。
- 如果你是本地運行Azure CLI,安裝 Azure CLI。 如果你是在 Windows 或 macOS 上運行,可以考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI。
- 如果你使用本地安裝,請使用
az login指令登入 Azure CLI。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。 - 如果出現提示,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
- Azure Container Linux 需要 Azure CLI 版本 2.86.0 或更高版本。 使用
az version指令來查找已安裝的Azure CLI版本及相關函式庫。 若要升級至最新版本,請使用命令az upgrade。 - 如果你還沒安裝 kubectl,可以透過 Azure CLI 用
az aks install-cli指令安裝,或依照 upstream instructions 操作。 - 要使用 ARM 範本建立 AKS 叢集,你需要提供 SSH 公開金鑰。 如果你需要這個資源,請先到 「建立 SSH 金鑰對 」的區塊產生一個,再部署範本。 如果你已經有 SSH 金鑰對,可以直接跳到 「檢視範本 」部分。
- 你用來建立叢集的身份必須具備適當的最低權限。 如需 AKS 存取和身分識別的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 的存取與身分識別選項。
- 若要部署 ARM 範本,您需要具備要部署的資源寫入權限,以及 Microsoft.Resources/deployments 資源類型上所有作業的存取權限。 例如,若要部署虛擬機器(VM),您需要 Microsoft.Compute/virtualMachines/write 和 Microsoft.Resources/deployments/* 權限。 如需角色與權限的清單,請參閱 Azure 內建角色。
建立 SSH 金鑰組
若要存取 AKS 節點,您可以使用 SSH 金鑰組 (公用和私人) 進行連線,您可以使用 ssh-keygen 命令產生該金鑰組。 根據預設,這些檔案會建立在 ~/.ssh 目錄中。 執行 ssh-keygen 命令會覆寫任何指定位置中已經存在相同名稱的 SSH 金鑰組。
移至 https://shell.azure.com,並在瀏覽器中開啟 Cloud Shell。
執行
ssh-keygen命令。 下列命令會使用 RSA 加密建立 SSH 金鑰組,位元長度為 4096:ssh-keygen -t rsa -b 4096
如需建立 SSH 金鑰的詳細資訊,請參閱在 Azure 中建立及管理驗證的 SSH 金鑰。
檢閱範本
以下部署使用來自 Azure Quickstart Templates 的 ARM 範本:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "aclakscluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"minValue": 0,
"maxValue": 1023,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. Specifying 0 applies the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"minValue": 1,
"maxValue": 50,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "standard_d2s_v3",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2026-03-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "Linux",
"osSKU": "AzureContainerLinux",
"mode": "System"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName')), '2024-02-01').fqdn]"
}
}
}
ARM 樣本中定義的資源類型 Microsoft.ContainerService/managedClusters。
部署範本
選取 [ 部署至 Azure ] 以登入並開啟範本。
在 [ 基本 ] 頁面上,保留 OS 磁碟大小 GB、 代理程式計數、 代理程式 VM 大小,以及 OS 類型的預設值,並設定下列範本參數:
- 訂用帳戶:選取 Azure 訂用帳戶。
- 資源群組:選取 [新建]。 輸入資源群組的唯一名稱,例如 myACLResourceGroup,然後選擇 OK。
- OS SKU: Specify AzureContainerLinux.
- 地點:選擇地點,例如 美國西部。
- 叢集名稱:輸入 AKS 叢集的唯一名稱,例如 myACLCluster。
- DNS 前綴:為您的叢集輸入獨特的 DNS 前綴,例如 myaclcluster。
- Linux 管理員使用者名稱:輸入使用 SSH 連線的使用者名稱,例如 azureuser。
- SSH 公開金鑰來源: 選取 [使用現有的公開金鑰]。
- 金鑰組名稱: 複製並貼上 SSH 金鑰組的公開部分 (預設為 ~/.ssh/id_rsa.pub 的內容)。
選取 [檢閱 + 建立]> [建立]。
建立 AKS 叢集需要幾分鐘的時間。 等部署完成後再 連接到叢集。
連線至叢集
若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectl。 如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 若要在本機安裝 kubectl,請使用 az aks install-cli 命令。
設定
kubectl使用az aks get-credentials命令連線到 Kubernetes 叢集。 此命令會下載認證,並設定 Kubernetes CLI 來使用這些認證。az aks get-credentials --resource-group myACLResourceGroup --name myACLCluster使用
kubectl get命令確認叢集的連線。 此命令會傳回叢集節點的清單。kubectl get nodes下列輸出範例會顯示上一個步驟中建立的三個節點。 確定節點的狀態為就緒:
NAME STATUS ROLES AGE VERSION aks-agentpool-12345678-0 Ready agent 6m44s v1.34.0 aks-agentpool-12345678-1 Ready agent 6m46s v1.34.0 aks-agentpool-12345678-2 Ready agent 6m45s v1.34.0
刪除叢集
如果你不再需要在這個快速入門中建立的資源,可以清理它們以避免 Azure 費用。
使用 az group delete 指令刪除 Azure 資源群組及所有相關資源:
az group delete --name myACLResourceGroup --yes --no-wait
相關內容
在這個快速入門中,你部署了一個使用 ARM 範本的 Azure Container Linux (ACL) AKS 叢集。 欲了解更多關於前十字韌帶(ACL)的資訊,請參閱以下資源: