Облачная платформаAdvanced

Автоматическое применение обновлённых Access Keys (AK/SK) для OBS Volume

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Если ваши сервисные контейнеры используют OBS для хранения данных и доступа, вам необходимо вручную перезапустить их каждый раз, когда Access Keys OBS volume изменяются, чтобы применить новые ключи. Этот процесс может прервать непрерывность сервиса.

CCE Container Storage (Everest) может автоматически применять новые Access Keys для OBS volume после их обновления. После обновления Access Keys OBS volume CCE автоматически обнаруживает изменение и применяет новые ключи ко всем затронутым рабочим нагрузкам. Это устраняет необходимость вручную перезапускать эти нагрузки, обеспечивая беспрепятственную непрерывность сервиса во время обновления ключей.

Требования

  • Доступен CCE standard или Turbo cluster, и версия кластера соответствует следующим требованиям:
    • v1.25: v1.25.16-r30 or later
    • v1.27: v1.27.16-r30 or later
    • v1.28: v1.28.15-r20 or later
    • v1.29: v1.29.13-r0 or later
    • v1.30: v1.30.10-r0 or later
    • v1.31: v1.31.6-r0 or later
    • v1.32: v1.32.1-r0 or later
    • Кластеры более поздних версий
  • В кластере установлен CCE Container Storage (Everest) add-on v2.4.150 или более поздний.

Ограничения

  • Если версия дополнения находится в диапазоне от 2.4.150 (включительно) до 2.4.165 (исключительно), автоматическое обновление ключей доступа применяется только к параллельным файловым системам. Начиная с версии 2.4.165 и далее, поддерживаются как параллельные файловые системы, так и OBS‑бакеты.
  • Автоматическое обновление ключей доступа применяется только к рабочим нагрузкам, созданным после обновления CCE Container Storage (Everest) до определённой версии (2.4.150 или новее для параллельных файловых систем и 2.4.165 или новее для OBS‑бакетов). Чтобы включить эту функцию для существующих нагрузок, вручную пересоберите их после обновления CCE Container Storage (Everest).

Шаг 1: Проверьте, поддерживает ли рабочая нагрузка автоматическое обновление ключей

Автоматическое обновление ключей для OBS‑томов доступно только для нагрузок, созданных после обновления CCE Container Storage (Everest) до требуемой версии. Убедитесь, что дополнение обновлено корректно, и целевая нагрузка создана после этого.

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. В панели навигации выберите Add-ons. Проверьте, соответствует ли версия CCE Container Storage (Everest) требованиям.

    • Если версия дополнения 2.4.150 или новее, нажмите Edit. В Edit Add-on убедитесь, что динамическое обновление AK/SK включено в Extended Parameter Settings в разделе Advanced Settings. Проверьте, что enable_aksk_refresh установлено в true.

  3. Проверьте рабочие нагрузки, использующие OBS‑бакеты, и узлы, на которых эти нагрузки работают в кластере. Ниже приведён пример с параллельной файловой системой.

    1. В панели навигации выберите Storage. Нажмите вкладку PersistentVolumeClaims (PVCs) справа и проверьте, есть ли тома хранения, использующие параллельные файловые системы во всех пространствах имён.

    2. Подтвердите наличие хранилища параллельных файловых систем во всех пространствах имён. Ниже используется пространство имён default в качестве примера, где {pvc_name} указывает имя PVC:
      kubectl get pods -n default -o custom-columns="POD:.metadata.name,PVC:.spec.volumes[*].persistentVolumeClaim.claimName,hostIP:.status.hostIP,UID:.metadata.uid" | grep {pvc_name}

      Отображается информация, аналогичная следующей:

      obs-test-65c6dd7675-c67ss obs 192.168.0.227 adb83cd4-58cc-4d01-a91a-584c6ed477fc

      Под подом obs-test-65c6dd7675-c67ss смонтирован PVC obs. IP‑адрес узла, на котором работает под, — 192.168.0.227, а UID узла — adb83cd4-58cc-4d01-a91a-584c6ed477fc.

  4. Войдите в узел, где развернут pod, и выполните следующую команду, чтобы проверить, когда инструмент obsfs будет обновлён после обновления CCE Container Storage (Everest):

    ls -l /usr/bin/obsfs

    Отображается информация, аналогичная следующей, указывающая, что obsfs был обновлён в 17:09 20 марта:

    -rwx------ 1 root root 9424176 Mar 20 17:09 /usr/bin/obsfs

  5. Проверьте время запуска obsfs на узле, где развернут pod.

    ps -ef | grep {pod_uid}

    Отображается информация, аналогичная следующей.

    obsfs, используемый pod, был смонтирован в 10:34, что позже времени обновления obsfs сервисом CCE Container Storage (Everest). Поэтому pod поддерживает автоматическое обновление ключей.

    Если процесс obsfs, используемый pod, произошёл раньше времени обновления инструмента obsfs сервисом CCE Container Storage (Everest), необходимо вручную перезапустить pod. Автоматическое обновление ключей вступит в силу автоматически.

Шаг 2: Обновление пользовательских ключей доступа (AK/SK) OBS Volume.

После подтверждения, что рабочая нагрузка с смонтированным OBS volume поддерживает автоматическое обновление ключей, вы можете обновить пользовательские ключи доступа (AK/SK) OBS volume.

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. В панели навигации выберите Storage. На вкладке PVCs найдите том и выберите More > Update Access Key в столбце Operation.
  3. Загрузите новые ключи доступа (AK/SK) и нажмите OK.

    Caution

    Убедитесь, что обновлённые ключи действительны и имеют разрешения для доступа к соответствующему OBS volume. В противном случае рабочая нагрузка не сможет получить доступ к смонтированному объектному хранилищу.

Шаг 3: Подтверждение обновлённых ключей для рабочей нагрузки.

После обновления ключей доступа, используемых OBS, вы можете выполнить следующие действия, чтобы проверить, что обновление вступило в силу примерно через 30 секунд, просмотрев события pod или тревоги:

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. В панели навигации выберите Workloads. Нажмите название рабочей нагрузки, чтобы перейти на страницу деталей.
  3. На вкладке Pods нажмите View Events в столбце Operation pod.

    Если отображается событие «failed to refresh ak/sk for xxx», ключи не удалось обновить для рабочей нагрузки. Определите причину, как указано в подсказке. Подробности см. в Common Events. Если сигнал тревоги или событие не генерируются, обновление прошло успешно.

Общие события

  • Сертификат недействителен. Событие выглядит следующим образом:
    failed to refresh ak/sk for xxx, reason: invalid credentials (host=xxx:443) - result of checking service.

    Решение

    Замените сертификат на действительный, а затем проверьте, устранена ли ошибка.

  • Обновление AK/SK завершилось тайм‑аутом. Событие выглядит следующим образом:
    failed to refresh ak/sk for xxx, reason: wait timeout...

    Решение

    Это alarm может генерироваться время от времени, когда процесс obsfs завершается из‑за удаления pod или миграции. Это нормальная ситуация. Если alarm не продолжается, игнорируйте его.

    Если этот alarm сохраняется, пересоберите pod и затем проверьте, устранена ли ошибка.