教學課程:建立 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
    

確認您的許可權

在本教學課程中,您將建立資源群組,其中包含叢集的虛擬網路。 若要這樣做,您將需要參與者和使用者存取管理員istrator 許可權或擁有者許可權,直接在虛擬網路或包含它的資源群組或訂用帳戶上。

您也需要足夠的 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 取代為您自己的自訂網域。

注意

如果您要將任何選擇性引數新增至命令,請務必使用結尾反斜線關閉命令前一行的引數。

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>

選擇版本之後,請使用 命令中的 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>

下一步

在本教學課程的這個部分中,您已瞭解如何:

  • 設定必要條件並建立必要的虛擬網路和子網
  • 部署叢集

前進到下一個教學課程: