教學課程:建立 Azure Red Hat OpenShift 4 叢集
在本教學課程中,您會準備環境,以建立執行 OpenShift 4 的 Azure Red Hat OpenShift 叢集,並建立叢集。 您會了解如何:
- 設定必要條件
- 建立必要的虛擬網路和子網路
- 部署叢集
開始之前
如果您選擇在本機安裝和使用 CLI,本教學課程會要求您執行 Azure CLI 2.30.0 版或更新版本。 執行 az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
Azure Red Hat OpenShift 至少需要 40 個核心,才能建立和執行 OpenShift 叢集。 新 Azure 訂閱的預設 Azure 資源配額不符合這項需求。 若要要求增加資源限制,請參閱標準配額:VM 系列的增加限制。
例如,若要檢查最小支援的虛擬機器系列 SKU 「Standard DSv3」 的目前訂用帳戶配額:
LOCATION=eastus az vm list-usage -l $LOCATION \ --query "[?contains(name.value, 'standardDSv3Family')]" \ -o table
驗證權限
在本教學課程中,您將建立資源群組,其中包含叢集的虛擬網路。 若要這樣做,您將需要直接在虛擬網路或包含其資源群組或訂用帳戶的參與者和使用者存取管理員許可權或擁有者許可權。
您也需要足夠的 Azure Active Directory 許可權, (租使用者的成員使用者,或使用角色 應用程式管理員 指派的來賓) ,讓工具代表您為叢集建立應用程式和服務主體。 如需詳細資訊,請參閱 成員和來賓 ,以及 使用 Azure Active Directory 將系統管理員和非系統管理員角色指派給使用者 。
註冊資源提供者
如果您有多個 Azure 訂用帳戶,請指定相關的訂用帳戶識別碼:
az account set --subscription <SUBSCRIPTION ID>
註冊
Microsoft.RedHatOpenShift
資源提供者:az provider register -n Microsoft.RedHatOpenShift --wait
註冊
Microsoft.Compute
資源提供者:az provider register -n Microsoft.Compute --wait
註冊
Microsoft.Storage
資源提供者:az provider register -n Microsoft.Storage --wait
註冊
Microsoft.Authorization
資源提供者:az provider register -n Microsoft.Authorization --wait
取得 Red Hat 提取祕密 (選擇性)
注意
ARO 提取密碼不會變更 ARO 的 RH OpenShift 授權成本。
Red Hat 提取密碼可讓您的叢集存取 Red Hat 容器登錄,以及其他內容,例如 OperatorHub中的操作員。 此步驟為選用步驟,但建議執行。 如果您稍後決定新增提取密碼,請遵循 此指引。 即使您的提取密碼包含該欄位,該欄位 cloud.openshift.com
也會從您的秘密中移除。 此欄位會啟用額外的監視功能,此功能會將資料傳送至 RedHat,因此預設會停用。 若要啟用這項功能,請參閱 https://docs.openshift.com/container-platform/4.11/support/remote_health_monitoring/enabling-remote-health-reporting.html 。
流覽至您的 Red Hat OpenShift 叢集管理員入口網站 並登入。
您必須登入您的 Red Hat 帳戶,或使用您的商務電子郵件建立新的 Red Hat 帳戶,並接受條款及條件。
選取 [下載提取密碼 ],然後下載要與您的 ARO 叢集搭配使用的提取密碼。
將儲存的
pull-secret.txt
檔案保持在其他安全位置。 如果您需要建立叢集,且叢集內包含 Red Hat 或認證合作夥伴的範例或操作員,則會在每次建立叢集時使用此檔案。執行
az aro create
命令時,您可以使用--pull-secret @pull-secret.txt
參數來參考您的提取祕密。 從您儲存pull-secret.txt
檔案的目錄執行az aro create
。 否則,請將@pull-secret.txt
取代為@/path/to/my/pull-secret.txt
。如果您要複製提取密碼,或在其他腳本中參考它,則提取密碼應該格式化為有效的 JSON 字串。
為叢集準備自訂網域 (選擇性)
執行 az aro create
命令時,您可以使用 --domain foo.example.com
參數來指定叢集的自訂網域。
注意
雖然透過 Azure CLI 建立叢集時,新增功能變數名稱是選擇性的,但在透過入口網站新增叢集時,需要新增功能變數名稱 (或作為 OpenShift 主控台和 API) 伺服器自動產生 DNS 名稱的一部分的前置詞。 如需詳細資訊,請參閱快速入門:使用 Azure 入口網站 部署 Azure Red Hat OpenShift 叢集。
如果您為叢集提供自訂網域,請注意下列幾點:
建立叢集之後,您必須在 DNS 伺服器中為
--domain
指定的 建立兩筆 DNS A 記錄:- api - 指向 API 伺服器 IP 位址
- *.apps - 指向輸入 IP 位址
- 在建立好叢集之後,藉由執行下列命令來取得這些值:
az aro show -n -g --query '{api:apiserverProfile.ip, ingress:ingressProfiles[0].ip}'
。
OpenShift 主控台將會在 URL (例如
https://console-openshift-console.apps.example.com
) 中提供,而不是內建的網域https://console-openshift-console.apps.<random>.<location>.aroapp.io
。根據預設,OpenShift 會針對自訂網域
*.apps.example.com
上建立的所有路由使用自我簽署憑證。 如果您在連線至叢集之後選擇使用自訂 DNS,則必須遵循 OpenShift 文件來為您的輸入控制器設定自訂 CA,以及為您的 API 伺服器自訂 CA。
建立包含兩個空白子網路的虛擬網路
接下來,您將建立包含兩個空白子網的虛擬網路。 如果您有符合您需求的現有虛擬網路,您可以略過此步驟。
在您將執行
az
命令的殼層環境中,設定下列變數。LOCATION=eastus # the location of your cluster RESOURCEGROUP=aro-rg # the name of the resource group where you want to create your cluster CLUSTER=cluster # the name of your cluster
建立資源群組。
Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。 建立資源群組時,系統會要求您指定位置。 此位置是儲存資源群組中繼資料的位置,如果您未在資源建立期間指定另一個區域,此位置也會是您在 Azure 中執行資源的位置。 使用 az group create 命令來建立資源群組。
注意
Azure Red Hat OpenShift 無法在可建立 Azure 資源群組的所有區域中使用。 如需支援 Azure Red Hat OpenShift 區域的相關資訊,請參閱可用區域。
az group create \ --name $RESOURCEGROUP \ --location $LOCATION
下列範例輸出顯示已成功建立的資源群組:
{ "id": "/subscriptions/<guid>/resourceGroups/aro-rg", "location": "eastus", "name": "aro-rg", "properties": { "provisioningState": "Succeeded" }, "type": "Microsoft.Resources/resourceGroups" }
建立虛擬網路。
執行 OpenShift 4 的 Azure Red Hat OpenShift 叢集需要具有兩個空白子網路的虛擬網路,分別用於主要節點和背景工作角色節點。 您可以為此建立新的虛擬網路,或使用現有的虛擬網路。
在您稍早建立的相同資源群組中建立新的虛擬網路:
az network vnet create \ --resource-group $RESOURCEGROUP \ --name aro-vnet \ --address-prefixes 10.0.0.0/22
下列範例輸出顯示已成功建立的虛擬網路:
{ "newVNet": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/22" ] }, "dhcpOptions": { "dnsServers": [] }, "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet", "location": "eastus", "name": "aro-vnet", "provisioningState": "Succeeded", "resourceGroup": "aro-rg", "type": "Microsoft.Network/virtualNetworks" } }
為主要節點新增空白子網路。
az network vnet subnet create \ --resource-group $RESOURCEGROUP \ --vnet-name aro-vnet \ --name master-subnet \ --address-prefixes 10.0.0.0/23
為背景工作節點新增空白子網路。
az network vnet subnet create \ --resource-group $RESOURCEGROUP \ --vnet-name aro-vnet \ --name worker-subnet \ --address-prefixes 10.0.2.0/23
建立叢集
執行下列命令來建立叢集: 如果您選擇使用下列其中一個選項,請據以修改命令:
- 您可以選擇 性地傳遞 Red Hat 提取密碼,讓您的叢集能夠存取 Red Hat 容器登錄以及其他內容。 將
--pull-secret @pull-secret.txt
引數新增至您的命令。 - (選擇性) 您可以使用自訂網域。 將
--domain foo.example.com
引數新增至您的命令,並將foo.example.com
取代為您自己的自訂網域。
注意
如果您要將任何選擇性引數新增至您的命令,請務必在命令的前一行結尾加上反斜線以關閉引數。
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet
執行 az aro create
命令之後,一般大約需要 35 分鐘的時間來建立叢集。
選取不同的 ARO 版本
您可以在建立叢集時選取使用特定版本的 ARO。 首先,使用 CLI 查詢可用的 ARO 版本:
az aro get-versions --location <region>
選擇版本之後,請使用 --version
命令中的 az aro create
參數來指定它:
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--version <x.y.z>
後續步驟
在教學課程的這個部分中,您已了解如何:
- 設定必要條件,並建立必要的虛擬網路和子網路
- 部署叢集
前進到下一個教學課程: