Задачи, выполняемые после развертывания

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

После развертывания кластера OpenShift можно настроить дополнительные элементы. В этой статье рассматриваются следующие вопросы:

  • Настройка единого входа с использованием Azure Active Directory (Azure AD).
  • Настройка журналов Azure Monitor для мониторинга OpenShift
  • Настройка метрик и ведения журнала.
  • Установка открытого компонента Service Broker для Azure (OSBA).

Настройка единого входа с использованием Azure Active Directory

Чтобы использовать Azure Active Directory для аутентификации, прежде всего нужно зарегистрировать приложение в Azure AD. Этот процесс состоит из двух этапов: регистрация приложения и настройка разрешений.

Регистрация приложения

В этом примере для регистрации приложения используется Azure CLI, а для настройки разрешений — графический пользовательский интерфейс (портал). Чтобы зарегистрировать приложение, нужно знать следующие сведения для пяти параметров:

  • Отображаемое имя. Имя регистрируемого приложения (например, OCPAzureAD).
  • Домашняя страница. URL-адрес консоли OpenShift (например, https://masterdns343khhde.westus.cloudapp.azure.com/console).
  • URI идентификатора. URL-адрес консоли OpenShift (например, https://masterdns343khhde.westus.cloudapp.azure.com/console).
  • URL-адрес ответа. Главный общедоступный URL-адрес и имя регистрации приложения (например, https://masterdns343khhde.westus.cloudapp.azure.com/oauth2callback/OCPAzureAD).
  • Пароль. Защищенный пароль (используйте надежный пароль).

В следующем примере регистрируется приложение на основе приведенных выше сведений.

az ad app create --display-name OCPAzureAD --homepage https://masterdns343khhde.westus.cloudapp.azure.com/console --reply-urls https://masterdns343khhde.westus.cloudapp.azure.com/oauth2callback/hwocpadint --identifier-uris https://masterdns343khhde.westus.cloudapp.azure.com/console --password {Strong Password}

Если команда будет выполнена успешно, вы получите такие выходные данные в формате JSON:

{
  "appId": "12345678-ca3c-427b-9a04-ab12345cd678",
  "appPermissions": null,
  "availableToOtherTenants": false,
  "displayName": "OCPAzureAD",
  "homepage": "https://masterdns343khhde.westus.cloudapp.azure.com/console",
  "identifierUris": [
    "https://masterdns343khhde.westus.cloudapp.azure.com/console"
  ],
  "objectId": "62cd74c9-42bb-4b9f-b2b5-b6ee88991c80",
  "objectType": "Application",
  "replyUrls": [
    "https://masterdns343khhde.westus.cloudapp.azure.com/oauth2callback/OCPAzureAD"
  ]
}

Запишите свойство appId, возвращенное из команды. Оно понадобится в дальнейшем.

На портале Azure выполните следующие действия.

  1. Выберите Azure Active Directory>App Registration (Регистрация приложений).

  2. Найдите зарегистрированное приложение (например, OCPAzureAD).

  3. В результатах поиска щелкните нужное зарегистрированное приложение.

  4. В области Параметры щелкните Требуемые разрешения.

  5. В области Необходимые разрешения щелкните Добавить.

    Регистрация приложения

  6. Щелкните "Шаг 1. Выбрать API" и выберите Windows Azure Active Directory (Microsoft.Azure.ActiveDirectory). Щелкните Выбрать внизу.

    Регистрация приложения. Выбор API

  7. В области "Шаг 2. Выбор разрешений" выберите Вход и чтение профиля пользователя в разделе Делегированные разрешения, затем щелкните Выбрать.

    Доступ к регистрации приложения

  8. Нажмите кнопку Готово.

Настройка OpenShift для аутентификации Azure AD

Чтобы OpenShift использовал Azure AD в качестве поставщика проверки подлинности, внесите изменения в файл /etc/origin/master/master-config.yaml на всех главных узлах.

Определите идентификатор клиента, выполнив следующую команду интерфейса командной строки:

az account show

В файле yaml найдите следующие строки:

oauthConfig:
  assetPublicURL: https://masterdns343khhde.westus.cloudapp.azure.com/console/
  grantConfig:
    method: auto
  identityProviders:
  - challenge: true
    login: true
    mappingMethod: claim
    name: htpasswd_auth
    provider:
      apiVersion: v1
      file: /etc/origin/master/htpasswd
      kind: HTPasswdPasswordIdentityProvider

Сразу после указанных выше строк вставьте следующие строки:

  - name: <App Registration Name>
    challenge: false
    login: true
    mappingMethod: claim
    provider:
      apiVersion: v1
      kind: OpenIDIdentityProvider
      clientID: <appId>
      clientSecret: <Strong Password>
      claims:
        id:
        - sub
        preferredUsername:
        - unique_name
        name:
        - name
        email:
        - email
      urls:
        authorize: https://login.microsoftonline.com/<tenant Id>/oauth2/authorize
        token: https://login.microsoftonline.com/<tenant Id>/oauth2/token

Убедитесь, что текст в разделе identityProviders выравнивается правильно. Определите идентификатор клиента, выполнив следующую команду интерфейса командной строки: az account show

Перезапустите основные службы OpenShift на всех главных узлах.

sudo /usr/local/bin/master-restart api
sudo /usr/local/bin/master-restart controllers

В консоли OpenShift предложены два варианта аутентификации: htpasswd_auth и [Регистрация приложения].

Мониторинг OpenShift с помощью журналов Azure Monitor

Существует три способа добавить агент Log Analytics в OpenShift:

  • установить агент Log Analytics для Linux непосредственно на каждом узле OpenShift;
  • включить расширение виртуальной машины Azure Monitor на каждом узле OpenShift;
  • установить агент Log Analytics как набор daemon-set для OpenShift.

Дополнительные сведения см. в полной инструкции.

Настройка метрик и ведения журнала

В зависимости от используемой ветви, шаблоны Azure Resource Manager для платформы контейнеров OpenShift и OKD могут поддерживать входные параметры для включения метрик и ведения журнала в процессе установки.

Предложение платформы контейнеров OpenShift в Marketplace предоставляет также возможность включить метрики и ведение журнала во время установки кластера.

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

Использование поставщика облачных служб Azure

Создайте SSH-подключение к узлу-бастиону или первому главному узлу (в зависимости от шаблона и ветви, которые вы используете) и введите учетные данные, которые вы предоставили во время развертывания. Выполните следующую команду:

ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/openshift-metrics/config.yml \
-e openshift_metrics_install_metrics=True \
-e openshift_metrics_cassandra_storage_type=dynamic

ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml \
-e openshift_logging_install_logging=True \
-e openshift_logging_es_pvc_dynamic=true

Поставщик облачных служб Azure не используется

ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/openshift-metrics/config.yml \
-e openshift_metrics_install_metrics=True

ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml \
-e openshift_logging_install_logging=True

Установите Open Service Broker для Azure (OSBA)

Open Service Broker для Azure (OSBA) позволяет подготавливать облачные службы Azure непосредственно на платформе OpenShift. OSBA предоставляется в реализации API Open Service Broker для Azure. Спецификация API Open Service Broker определяет общий язык для облачных поставщиков, который позволяет управлять облачными службами в облачных приложениях без проблем с блокировками.

Чтобы установить OSBA на OpenShift, следуйте представленные здесь инструкции: https://github.com/Azure/open-service-broker-azure#openshift-project-template.

Примечание

Выполните только шаги, описанные в разделе, посвященном шаблону проекта OpenShift, а не во всем разделе, посвященном установке.

Дальнейшие действия