Поделиться через


Создание частного кластера Azure Red Hat OpenShift 4

В этой статье объясняется, как подготовить среду для создания частных кластеров Azure Red Hat OpenShift с OpenShift 4. Вы изучите следующие темы:

  • настраивать необходимые компоненты и создавать необходимую виртуальную сеть и подсети;
  • Развертывание кластера с частной конечной точкой сервера API и закрытым контроллером входящего трафика

Если вы решили установить и использовать интерфейс командной строки локально, в этом руководстве требуется, чтобы вы работали с Azure CLI версии 2.30.0 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Подготовка к работе

Регистрация поставщиков ресурсов

  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.Network Зарегистрируйте поставщика ресурсов (если вы еще этого не сделали):

    az provider register -n Microsoft.Network --wait
    
  5. Microsoft.Storage Зарегистрируйте поставщика ресурсов (если вы еще этого не сделали):

    az provider register -n Microsoft.Storage --wait
    

Получение секрета для извлечения Red Hat (необязательно)

Секрет для извлечения Red Hat позволяет вашему кластеру получать доступ к реестрам контейнера Red Hat и дополнительному содержимому. Этот шаг необязателен, но мы рекомендуем его выполнить.

  1. Перейдите на портал диспетчера кластеров Red Hat OpenShift и выполните вход.

    Вам потребуется войти в учетную запись Red Hat или создать новую учетную запись Red Hat с вашей бизнес-электронной почтой и принять условия.

  2. Щелкните "Download pull secret" (Скачать секрет для извлечения).

Сохраненный файл pull-secret.txt должен находиться в безопасном месте — он будет использоваться при каждом создании кластера.

При выполнении команды az aro create вы можете ссылаться на секрет для извлечения, используя параметр --pull-secret @pull-secret.txt. Выполните az aro create из каталога, в котором был сохранен файл pull-secret.txt. В противном случае измените @pull-secret.txt на @<path-to-my-pull-secret-file.

Если вы копируете секрет извлечения или ссылаетесь на него в других сценариях, секрет извлечения должен быть отформатирован как допустимая строка JSON.

Создание виртуальной сети, содержащей две пустые подсети

Затем вы создадите виртуальную сеть, содержащую две пустые подсети.

  1. Задайте следующие переменные.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. Создание группы ресурсов

    Группа ресурсов Azure — это логическая группа, в которой развертываются и управляются ресурсы Azure. Во время создания группы ресурсов вам будет предложено указать расположение. В этом расположении хранятся метаданные группы ресурсов, а также ресурсы выполняются в Azure, если не указать другой регион во время создания ресурса. Создайте группу ресурсов с помощью команды [az group create][az-group-create].

    az group create --name $RESOURCEGROUP --location $LOCATION
    

    В следующем примере выходных данных показано, что группа ресурсов успешно создана:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Создайте виртуальную сеть.

    Для кластеров Azure Red Hat OpenShift с OpenShift 4 требуется виртуальная сеть с двумя пустыми подсетями для главного и рабочего узлов.

    Создайте виртуальную сеть в той же группе ресурсов, которая была создана ранее.

    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"
        ]
        },
        "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 \
    --service-endpoints Microsoft.ContainerRegistry
    
  5. Добавьте пустую подсеть для рабочих узлов.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name worker-subnet \
    --address-prefixes 10.0.2.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. Отключите политики частных конечных точек подсети в главной подсети. Это необходимо для подключения к кластеру и управления им.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --disable-private-link-service-network-policies true
    

Создайте кластер.

Чтобы создать кластер, выполните команду ниже. При необходимости вы можете передать секрет для извлечения Red Hat, который позволяет кластеру получать доступ к реестрам контейнеров Red Hat, а также к дополнительному содержимому.

Примечание.

Если вы копируете и вставляете команды и используете один из необязательных параметров, удалите начальные хэштеги и текст комментария. Кроме того, добавьте к аргументу в предыдущей строке команды обратную косую черту в конце.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

После выполнения команды az aro create создание кластера обычно занимает около 35 минут.

Примечание.

При попытке создать кластер, если появится сообщение об ошибке о превышении квоты ресурса, см . статью "Добавление квоты в учетную запись ARO", чтобы узнать, как продолжить.

Важно!

Если вы решили указать личный домен, например foo.example.com, консоль OpenShift будет доступна по URL-адресу, например https://console-openshift-console.apps.foo.example.com, вместо встроенного адреса https://console-openshift-console.apps.<random>.<location>.aroapp.io домена.

По умолчанию OpenShift использует самозаверяющие сертификаты для всех маршрутов, созданных в *.apps.<random>.<location>.aroapp.io. При выборе настраиваемого DNS после подключения к кластеру необходимо следовать документации OpenShift, чтобы настроить настраиваемый сертификат для контроллера входящего трафика и пользовательского сертификата для сервера API.

Создание частного кластера без общедоступного IP-адреса

Как правило, частные кластеры создаются с общедоступным IP-адресом и подсистемой балансировки нагрузки, предоставляя средства для исходящего подключения к другим службам. Однако вы можете создать частный кластер без общедоступного IP-адреса. Это может потребоваться в ситуациях, когда требования к безопасности или политике запрещают использование общедоступных IP-адресов.

Чтобы создать частный кластер без общедоступного IP-адреса, выполните приведенную выше процедуру, добавив параметр --outbound-type UserDefinedRouting в aro create команду, как показано в следующем примере:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

Примечание.

Флаг UserDefinedRouting можно использовать только при создании кластеров с --apiserver-visibility Private параметрами и --ingress-visibility Private параметрами. Убедитесь, что вы используете последнюю версию Azure CLI. Кластеры, развернутые с помощью Azure CLI 2.52.0 и более ранних версий, будут развернуты с общедоступными IP-адресами.

Этот параметр определяемой пользователем маршрутизации запрещает подготовку общедоступного IP-адреса. Определяемая пользователем маршрутизация (UDR) позволяет создавать настраиваемые маршруты в Azure для переопределения системных маршрутов по умолчанию или добавлять дополнительные маршруты в таблицу маршрутов подсети. Дополнительные сведения см. в статье "Маршрутизация трафика виртуальной сети".

Важно!

При создании частного кластера обязательно укажите правильную подсеть с правильно настроенной таблицей маршрутизации.

Для исходящего трафика параметр "Определяемая пользователем маршрутизация" гарантирует, что созданный кластер имеет функцию блокировки исходящего трафика, которая позволяет защитить исходящий трафик из нового частного кластера. Дополнительные сведения см. в статье "Управление исходящим трафиком" для кластера Azure Red Hat OpenShift (ARO).

Примечание.

Если выбрать тип сети определяемой пользователем маршрутизации, вы полностью отвечаете за управление исходящего трафика маршрутизации кластера за пределами виртуальной сети (например, получение доступа к общедоступному Интернету). Azure Red Hat OpenShift не может управлять этим для вас.

Вы можете настроить один или несколько ip-адресов исходящего трафика в пространство имен или для определенных модулей pod в пространстве имен частного кластера без общедоступного IP-адреса. Для этого выполните описанные выше действия, чтобы создать частный кластер без общедоступного IP-адреса, а затем настроить IP-адрес исходящего трафика в этом документе Red Hat OpenShift. Эти IP-адреса исходящего трафика должны быть из подсетей, связанных с кластером ARO.

Настройка IP-адреса исходящего трафика для частного кластера ARO поддерживается только для кластеров с параметром --outbound-type UserDefinedRouting . Он не поддерживается для общедоступных кластеров ARO, имеющих --outbound-type LoadBalancer параметр.

Подключение к частному кластеру

Вы можете войти в кластер как пользователь kubeadmin. Выполните следующую команду, чтобы найти пароль для пользователя kubeadmin.

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

В следующем примере вывода показано, что пароль будет находиться в kubeadminPassword.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

URL-адрес консоли кластера можно найти, выполнив следующую команду, которая будет выглядеть вот так: https://console-openshift-console.apps.<random>.<region>.aroapp.io/

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Важно!

Чтобы подключиться к частному кластеру Azure Red Hat OpenShift, вам потребуется выполнить следующий шаг из узла, который находится в созданном виртуальная сеть или в виртуальная сеть, в котором выполняется пиринг с виртуальная сеть развернут кластер.

Перейдите по URL-адресу консоли в браузере и войдите с помощью учетных данных kubeadmin.

Screenshot that shows the Azure Red Hat OpenShift login screen.

Установка интерфейса командной строки OpenShift

После входа в веб-консоль OpenShift щелкните значок ? в правом верхнем углу, а затем в командной строке. Скачайте выпуск, подходящий вашему компьютеру.

Image shows Azure Red Hat OpenShift login screen

Вы также можете скачать последнюю версию интерфейса командной строки , соответствующую вашему компьютеру.

Подключение с помощью интерфейса командной строки OpenShift

Получите адрес сервера API.

apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)

Важно!

Чтобы подключиться к частному кластеру Azure Red Hat OpenShift, вам потребуется выполнить следующий шаг из узла, который находится в созданном виртуальная сеть или в виртуальная сеть, в котором выполняется пиринг с виртуальная сеть развернут кластер.

Войдите на сервер API кластера OpenShift с помощью следующей команды. Замените <пароль> kubeadmin только что извлеченным паролем.

oc login $apiServer -u kubeadmin -p <kubeadmin password>

Следующие шаги

Из этой статьи вы узнали, как развернуть кластер Azure Red Hat OpenShift с OpenShift 4. Вы научились выполнять следующие задачи:

  • настраивать необходимые компоненты и создавать необходимую виртуальную сеть и подсети;
  • Развертывание кластера
  • Подключение к кластеру от имени пользователя kubeadmin

Перейдите к следующей статье, чтобы узнать, как настроить кластер для проверки подлинности с помощью идентификатора Microsoft Entra.