前言
昨天參加 Kubernetes in Azure活動,通常在體驗 Azure 公有雲的活動中會拿到 Azure Pass 以便快速體驗 Azure 公有雲相關功能特色。但有些地方需要注意,否則在實作的過程中很容易遇到問題,以下就記錄一下昨天遇到然後當場解掉的問題吧 💪申請 Microsoft 帳號
建議為 Azure Pass申請新的 Microsoft 帳號,後續測試完畢或錢燒完或時間到 (一般來說 Azure Pass 會提供 USD $100及 1 個月試用期),也可以直接把這個 Microsoft 帳號刪除。請連結至 https://signup.live.com/進行申請 Microsoft 帳號的動作:
圖、申請 Microsoft 帳號
透過 Azure Pass 啟用 Azure 訂閱帳戶
簡單來說,在你申請好 Microsoft 帳號之後,主辦單位會給你「Azure Pass Promo Code」此時,便可以連結至 Microsoft Azure Pass網站進行啟用及開通 Azure 訂閱帳戶的動作。值得注意的是,應該了解及避免下列狀況:- 使用過 Azure Free Free Account的 Microsoft 帳號無法使用 Azure Pass。
- 曾經使用過 Azure Pass的 Microsoft 帳號無法再次開通。
- 避免使用 MSDN 訂閱帳戶來開通 Azure Pass。
- Azure Pass 會有建立 5 台 VM 虛擬主機的限制。
有關透過 Azure Pass 啟用 Azure 訂閱帳戶的動作,官方已經有詳細說明就不重新造輪子了:
圖、透過 Azure Pass 啟用 Azure 訂閱帳戶
Azure CLI 指令 az acr login / create / repository 有問題?
在嘗試執行 Azure CLI 相關指令時 (例如,az acr login / create / repository) 都會有一堆錯誤訊息,其中關鍵錯誤訊息是「'bool' object has no attribute 'rstrip'」,根據錯誤訊息找到這篇討論 az acr login error: AttributeError: 'bool' object has no attribute 'rstrip'· Issue #5303 · Azure/azure-cli。簡單來說,剛好採用的是有問題的 Azure CLI 2.0.24版本而導致的,只要下載最新的 Azure CLI 2.0.25版本即可解決。
圖、最新 Azure CLI 2.0.25 版本可順利執行 az acr repository 指令
Azure Pass 訂閱帳戶無法使用所有的 Azure 資料中心?
在昨天的實作過程中,當透過 Azure CLI 指令嘗試建立 Kubernetes 叢集時,卻出現下列錯誤訊息,表示無法建立 Kubernetes Agent VM?C:\> az acs create --orchestrator-type kubernetes --resource-group RG-US-West --name k8scluster --generate-ssh-keys --agent-count 1
Deployment failed. Correlation ID: e415a0f4-f9de-4882-8ed0-d60e46cf87a7. {
"error": {
"code": "BadRequest",
"message": "The VM Size of Master, Agent is not allowed in your subscription in location 'westus'. Master VM Size 'Standard_D2_v2' is available in locations: eastus, westeurope, southeastasia. Agent VM Size 'Standard_D2_v2' is available in locations: eastus, westeurope, southeastasia."
}
}
從上述訊息很容易得知,你指定的 Azure 資料中心並不支援建立 Kubernetes Agent VM,請你改為指定採用 eastus, westeurope, southeastasia這 3 個資料中心即可。
圖、Azure Pass 訂閱帳戶此例僅適合建立指定的 3 個 Azure 資料中心
Azure Pass 訂閱帳戶無法建立 Kubernetes 叢集?
再調整為允許建立的 Azure 資料中心後,再次透過 Azure CLI 指令嘗試建立 Kubernetes 叢集時,又是出現一大堆的錯誤訊息 (但忘了抓畫面 😝),根據錯誤訊息找到這篇討論 az acs create fails on provisioning microsoft.network · Issue #1309 · Azure/azure-cli。簡單來說,因為使用的 Azure Pass 訂閱帳戶「沒有」透過 ARM Portal 建立過 VM 或其它資源,導致相關資源 (Network, Storage, Compute) 都還沒有註冊所以發生錯誤。你可以嘗試透過 ARM Portal 建立 1 台 VM 虛擬主機後再刪除,或者是執行下列 Azure CLI 指令註冊相關資源後,便應該可以順利建立 Kubernetes 叢集:
C:\>az provider register --namespace Microsoft.Network
Registering is still on-going. You can monitor using 'az provider show -n Microsoft.Network'
C:\>az provider register --namespace Microsoft.Compute
Registering is still on-going. You can monitor using 'az provider show -n Microsoft.Compute'
C:\>az provider register --namespace Microsoft.Storage
Registering is still on-going. You can monitor using 'az provider show -n Microsoft.Storage'
圖、註冊相關資源後,即可順利建立 Kubernetes 叢集
圖、註冊相關資源後,即可順利建立 Kubernetes 叢集
關閉測試用途 Microsoft 帳戶
當測試完畢或 Azure Pass 額度用完 (錢燒完) 或試用時間到期 (一般來說 Azure Pass 會提供 USD $100 及 1 個月試用期),便可以直接把這個測試用途的 Microsoft 帳號刪除。圖、關閉測試用途 Microsoft 帳戶