分享方式:


建立 Azure Red Hat OpenShift 4 叢集

Azure Red Hat OpenShift 是受控 OpenShift 服務,可讓您快速部署和管理叢集。 本文說明如何使用 Azure CLI 或 Azure 入口網站來部署 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
    

驗證權限

在本文中,您會建立資源群組,其中會包含叢集的虛擬網路。 若要這麼做,您將需要「參與者」和「使用者存取系統管理員」權限,或「擁有者」權限,不論是直接在虛擬網路上擁有,還是是其所在的資源群組或訂用帳戶上擁有。

您也需要足夠的 Microsoft Entra 權限 (租用戶的成員使用者,或獲指派角色應用程式系統管理員的來賓),讓工具代表您為叢集建立應用程式和服務主體。 請參閱成員和來賓,和使用 Microsoft Entra ID 將系統管理員和非系統管理員角色指派給使用者,來了解更多資訊。

註冊資源提供者

  1. 如果您有多個 Azure 訂用帳戶,請指定相關的訂用帳戶識別碼:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. 註冊 Microsoft.RedHatOpenShift 資源提供者:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. 註冊 Microsoft.Compute 資源提供者:

    az provider register -n Microsoft.Compute --wait
    
  4. 註冊 Microsoft.Storage 資源提供者:

    az provider register -n Microsoft.Storage --wait
    
  5. 註冊 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

  1. 瀏覽至您的 Red Hat OpenShift 叢集管理員入口網站並登入。

    您將必須登入 Red Hat 帳戶,或使用您的公司電子郵件建立新的 Red Hat 帳戶,並接受條款及條件。

  2. 選取 [下載提取祕密] 並下載要與您的 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

建立包含兩個空白子網路的虛擬網路

接下來,您會建立包含兩個空白子網路的虛擬網路。 如果您現在有符合需求的虛擬網路,就可以略過此步驟。

  1. 在您將執行 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
    
  2. 建立資源群組

    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"
    }
    
  3. 建立虛擬網路

    執行 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"
      }
    }
    
  4. 為主要節點新增空白子網路。

    az network vnet subnet create \
      --resource-group $RESOURCEGROUP \
      --vnet-name aro-vnet \
      --name master-subnet \
      --address-prefixes 10.0.0.0/23
    
  5. 為背景工作節點新增空白子網路。

    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 取代為您自己的自訂網域。

注意

建立時可定義的背景工作節點數目上限為 50。 建立叢集之後,您最多可以擴增到 250 個節點。

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet

執行 az aro create 命令之後,一般大約需要 45 分鐘的時間來建立叢集。

大規模 ARO 叢集

如果您想要部署具有超過 100 個背景工作節點的 Azure Red Hat OpenShift 叢集,請參閱部署大型 Azure Red Hat OpenShift 叢集

選取不同的 ARO 版本

您可以在建立叢集時選取使用特定版本的 ARO。 首先,使用 CLI 查詢可用的 ARO 版本:

az aro get-versions --location <region>

選擇版本之後,請使用 az aro create 命令中的 --version 參數來指定:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --version <x.y.z>