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


Добавление или изменение секрета опроса Red Hat в кластере Azure Red Hat OpenShift 4

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

Для нового развертывания кластера можно добавить секрет доступа при создании кластера. Для получения дополнительной информации о создании кластера с использованием pull-секрета Red Hat, см. статью "Получение pull-секрета Red Hat (необязательно)".

Предпосылки

В этом руководстве предполагается, что кластер Azure Red Hat OpenShift 4 уже существует. Убедитесь в наличии доступа к кластеру с правами администратора.

Подготовка секрета опроса

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

В этом разделе рассматривается обновление pull secret с использованием других значений из pull secret Red Hat.

  1. Извлеките секрет с именем pull-secret в пространстве имен openshift-config и сохраните его в отдельный файл, выполнив следующую команду:

    oc get secrets pull-secret -n openshift-config -o template='{{index .data ".dockerconfigjson"}}' | base64 -d > pull-secret.json
    

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

    {
      "auths": {
        "arosvc.azurecr.io": {
          "auth": "<my-aroscv.azurecr.io-secret>"
        }
      }
    }
    
  2. Перейдите на портал диспетчера кластеров Red Hat OpenShift и выберите Скачать секрет опроса. Ваш секретный ключ извлечения Red Hat выглядит следующим образом, и фактические значения ключей были удалены.

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "<my-crc-secret>",
          "email": "violet@contoso.com"
        },
        "quay.io": {
          "auth": "<my-quayio-secret>",
          "email": "violet@contoso.com"
        },
        "registry.connect.redhat.com": {
          "auth": "<my-registry.connect.redhat.com-secret>",
          "email": "violet@contoso.com"
        },
        "registry.redhat.io": {
          "auth": "<my-registry.redhat.io-secret>",
          "email": "violet@contoso.com"
        }
      }
    }
    
  3. Измените файл секрета опроса, полученный из кластера, добавив записи, найденные в секрете опроса Red Hat.

    Это важно

    Если вы включите запись cloud.openshift.com из секрета pull'а Red Hat, ваш кластер будет отправлять телеметрические данные в Red Hat. Включайте этот раздел, только если нужно отправлять данные телеметрии. В противном случае исключите следующий раздел.

    {
      "cloud.openshift.com": {
        "auth": "<my-crc-secret>",
        "email": "violet@contoso.com"
      }
    

    Осторожность

    Не удаляйте и не изменяйте запись arosvc.azurecr.io из вашего ключа или токена извлечения. Этот раздел необходим для правильной работы кластера.

    "arosvc.azurecr.io": {
      "auth": "<my-aroscv.azurecr.io-secret>"
    }
    

    Окончательный файл должен выглядеть следующим образом. Фактические секретные значения были удалены.

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "<my-crc-secret>",
          "email": "violet@contoso.com"
        },
        "quay.io": {
          "auth": "<my-quayio-secret>",
          "email": "violet@contoso.com"
        },
        "registry.connect.redhat.com": {
          "auth": "<my-registry.connect.redhat.com-secret>",
          "email": "violet@contoso.com"
        },
        "registry.redhat.io": {
          "auth": "<my-registry.redhat.io-secret>",
          "email": "violet@contoso.com"
        },
        "arosvc.azurecr.io": {
          "auth": "<my-aroscv.azurecr.io-secret>"
        }
      }
    }
    
  4. Убедитесь, что файл является правильным JSON-файлом. Проверить правильность формата JSON можно разными способами. В следующем примере используется jq для проверки файла.

    cat pull-secret.json | jq
    

    Если в файле возникла ошибка, она отображается как parse error.

Добавление секрета опроса в кластер

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

oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=./pull-secret.json

Убедитесь, что секрет извлечения установлен

oc exec -n openshift-apiserver $(oc get pod -n openshift-apiserver -o jsonpath="{.items[0].metadata.name}") -- cat /var/lib/kubelet/config.json

После настройки секрета можно включить операторы Certified в Red Hat.

Изменение файлов конфигурации

Измените следующие объекты, чтобы включить операторы Red Hat.

Измените файл конфигурации оператора Samples. Затем можно выполнить следующую команду, чтобы изменить файл конфигурации:

oc edit configs.samples.operator.openshift.io/cluster -o yaml

Измените значение параметра spec.managementState с Removed на Managed.

В следующем фрагменте кода YAML показаны только соответствующие разделы измененного файла YAML:

apiVersion: samples.operator.openshift.io/v1
kind: Config
metadata:

  ...

spec:
  architectures:
  - x86_64
  managementState: Managed

Выполните следующую команду, чтобы изменить файл конфигурации Центра операторов:

oc edit operatorhub cluster -o yaml

Измените Spec.Sources.Disabled значение на truefalse любые источники, которые вы хотите включить.

В следующем фрагменте кода YAML показаны только соответствующие разделы измененного файла YAML:

Name:         cluster

...
                 dd3310b9-e520-4a85-98e5-8b4779ee0f61
Spec:
  Sources:
    Disabled:  false
    Name:      certified-operators
    Disabled:  false
    Name:      redhat-operators

Сохраните файл, чтобы применить изменения.

Проверка работоспособности секрета

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

$ oc get catalogsource -A
NAMESPACE               NAME                  DISPLAY               TYPE   PUBLISHER   AGE
openshift-marketplace   certified-operators   Certified Operators   grpc   Red Hat     10s
openshift-marketplace   community-operators   Community Operators   grpc   Red Hat     18h
openshift-marketplace   redhat-operators      Red Hat Operators     grpc   Red Hat     11s

Если операторы Certified и Red Hat не видны, подождите несколько минут и повторите попытку.

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

Дальнейшие шаги