J04.01. Секретные переменные (Secrets)

Редактировал(а) Ирина Сафонова 06.01.2024, 23:11

Назначение секретных переменных


Секретные переменные (Secrets) — зашифрованные переменные в Cloud Managed Kubernetes, которые используются в контейнерах без предоставления значения. Секретные переменные также используются для частных сведений, таких как пароли, идентификаторы и другие идентифицирующие данные. Чтобы использовать секретную переменную, под должен сослаться на нее одним из следующих способов:

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

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

Ссылки на документацию

Более подробная информация по секретным переменным в официальной документации Kubernetes.

Необходимые условия перед выполнением настроек


 Перед выполнением настроек должны быть созданы:

Пользователь должен быть приглашен в проект и наделен ролью operator.

Создание секретной переменной


Создание состоит из следующих последовательных шагов:
1. Открытие дашборда.
2. Ввод основной информации.
3. Установка секретной переменной.

При необходимости проверьте параметры настройки.

Шаг 1. Открытие дашборда

1. Войдите в веб-консоль как project-regular.
2. Перейдите в Configuration проекта, выберите Secrets и нажмите Create.

Шаг 2. Ввод основной информации

Задайте имя секретной переменной, например, demo-secret и нажмите кнопку Next.

Чтобы увидеть файл манифеста развертывания в формате YAML, нажмите кнопку Edit YAML в правом верхнем углу. Cloud Managed Kubernetes позволяет редактировать файл манифеста для создания секретной переменной.

Шаг 3. Установка секретной переменной

1. На вкладке Data Settings выберите тип секретной переменной. Типы указываются поле type файла YAML.

Для всех типов секретных переменных значения ключей должны быть строками в кодировке base64. После указания значений ключей система автоматически преобразует в значения символов base64 файла YAML. Например, если вы вводите password и hello123 для Key и Value соответственно, фактическое значение, отображаемое в файле YAML, будет aGVsbG8xMjM= (а именно, hello123 в формате base64).

Типы секретных переменных в Cloud Managed Kubernetes:

ТипНазначение
Default

Тип Opaque в Cloud Managed Kubernetes. Тип по умолчанию. При необходимости создайте произвольные пользовательские данные для этого типа. Нажмите кнопку Add Data, чтобы добавить для него пары «ключ-значение».

TLS information

Тип kubernetes.io/tls используется для хранения сертификата и связанного с ним ключа. Обычно используется для TLS, например, для завершения TLS ресурсов Ingress. Укажите для него Credential и Private Key tls.crt и tls.key в файле YAML соответственно).

Image registry informationТип kubernetes.io/dockerconfigjson используется для хранения учетных данных для доступа к реестру Docker  для образов.
Username and passwordТип kubernetes.io/basic-auth используется для хранения учетных данных, необходимых для базовой аутентификации. Укажите для имя пользователя и пароль (Username и Password в файле YAML).

2. В примере из статьи выберите тип Default секретной переменной. Нажмите кнопку Add Data и введите Key (MYSQL_ROOT_PASSWORD) и Value (123456), чтобы указать секретную переменную для MySQL.
3. Нажмите √ в правом нижнем углу для подтверждения. Вы можете продолжить добавлять пары ключ-значение в секретную переменную или нажмите Create.

Секретная переменная создана.

Проверка деталей настройки


1. После создания секретная переменная отображается в списке. При необходимости щелкните iconсправа и выбрать операцию из меню, чтобы изменить ее.

  • Edit Information: просмотр и редактирование основной информации.
  • Edit YAML: просмотр, загрузка, скачивание или обновление файла YAML.
  • Edit Settings: изменение пары ключ-значение секретной переменной.
  • Delete: удаление секретной переменной.

2. Щелкните имя секретной переменной и перейдете на страницу сведений. На вкладке Data все пары «ключ-значение», которые вы добавили для секретной переменной.

Система автоматически преобразует значение ключа в соответствующее значение символа base64. Чтобы увидеть фактическое декодированное значение, щелкните icon справа.

3. Нажмите More, чтобы отобразить доступные операции с этой секретной переменной:

  • Edit YAML: просмотр, загрузка, скачивание или обновление файла YAML.
  • Edit Secret: изменение пары ключ-значение секретной переменной.
  • Delete: удаление секретной переменной и возврат на страницу со списком.

Примеры часто используемых секретных переменных


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

Docker Hub

1. Войдите в консоль как project-regular , перейдите в проект, выберите Secrets на панели навигации и нажмите кнопку Create справа.
2. Задайте имя, например, dockerhub-id, и нажмите кнопку Next. На странице Data Settings заполните следующие поля и нажмите кнопку Validate, чтобы проверить корректность предоставленной информации.

  • Type: выберите Image registry information.
  • Registry Address: введите адрес реестра Docker Hub, например docker.io.
  • Username: введите Docker ID.
  • Password: введите пароль от Docker Hub.

3. Нажмите кнопку Create.

Секретная переменная Docker Hub создана.

GitHub

1. Войдите в консоль как project-regular, перейдите в проект, выберите Secrets на панели навигации и нажмите кнопку Create справа.
2. Задайте имя, например, github-id, и нажмите кнопку Next. На странице Data Settings заполните следующие поля:

  • Type: выберите Username and password.
  • Username: введите ваш логин от аккаунта GitHub.
  • Password: введите ваш пароль от аккаунта GitHub.

3. Нажмите кнопку Create.

Секретная переменная GitHub создана.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰