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

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

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

Сценарий

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

Примечания и ограничения

Секреты нельзя использовать в static pods.

Создание пары ключей с использованием консоли

  1. Войдите в консоль CCE и нажмите название кластера, чтобы получить доступ к консоли кластера.
  2. Выберите ConfigMaps и Secrets в навигационной панели нажмите Secrets вкладку и нажмите Создать секрет в правом верхнем углу.
  3. Настройте параметры.

    Таблица 1 Параметры для создания секрета

    Параметр

    Описание

    Имя

    Имя секрета, который вы создаёте, должно быть уникальным.

    Пространство имён

    Пространство имён, к которому принадлежит секрет. Если вы не укажете этот параметр, значение по умолчанию используется по умолчанию.

    Описание

    Описание секрета.

    Тип секрета

    Тип секрета, который вы создаёте.

    • Opaque: общий секрет.
    • kubernetes.io/dockerconfigjson: секрет, который хранит информацию аутентификации, необходимую для загрузки образов из приватного репозитория.
    • kubernetes.io/tls: Kubernetes TLS secret, который используется для хранения сертификата, необходимого для сервисов балансировки нагрузки уровня‑7. Для получения сведений о примерах kubernetes.io/tls секрет и его описание, см. TLS secret'ы.
    • IngressTLS: TLS secret, предоставляемый CCE для хранения сертификата, необходимого для сервисов балансировки нагрузки уровня‑7.
    • Other: другой тип секрета, указываемый вручную.

    Данные

    Данные секрета нагрузки могут использоваться в контейнерах.

    • Если Тип секрета установлен в Opaque, нажмите Добавить. В окне, которое выдвигается справа, введите пару ключ‑значение и выберите Авто Кодирование Base64.

      Ключ: Введите от 1 до 63 символов. Допускаются только цифры, буквы, точки (.), дефисы (-) и подчёркивания (_). Ключ не может начинаться с двух точек (..).

    • Если Тип Секрета установлен в kubernetes.io/dockerconfigjson, нажмите Добавить и введите учетную запись и пароль для входа в частный репозиторий образов.
    • Если Тип Секрета является kubernetes.io/tls или IngressTLS, загрузите файл сертификата и файл закрытого ключа.
      ПРИМЕЧАНИЕ:
      • Сертификат — это самоподписанный или подписанный CA учетные данные, используемые для аутентификации личности.
      • Запрос сертификата — это запрос подписи с помощью закрытого ключа.

    Метка секрета

    Метка секрета. Нажмите Добавить метку и введите пары ключ‑значение. Ключ и значение должны содержать от 1 до 63 символов, начинающихся и заканчивающихся буквой или цифрой. Разрешены только буквы, цифры, дефисы (-), подчеркивания (_) и точки (.).

  4. Нажмите OK.

    Новый секрет отображается в списке ключей.

Создание секрета с помощью kubectl

  1. Используйте kubectl для доступа к кластеру. Подробнее см. Доступ к кластеру с помощью kubectl.
  2. Закодируйте значение секрета, используя Base64.

    # echo -n "content-to-be-encoded" | base64
    ******

  3. Создайте файл с именем cce-secret.yaml и отредактируйте его.

    vi cce-secret.yaml

    Следующий файл YAML использует тип Opaque в качестве примера. Для получения подробной информации о других типах, см Пример конфигурации файла ресурса Secret.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret
    type: Opaque
    data:
    <your_key>: <your_value> # Enter a key-value pair. The value must be encoded using Base64.

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

    kubectl create -f cce-secret.yaml

    Вы можете запросить секрет после создания.

    kubectl get secret -n default

Пример конфигурации файла ресурса Secret

В этом разделе описаны примеры конфигурации файлов описания ресурса secret.

  • Opaque тип

    The secret.yaml файл определён, как показано ниже. The данные поле заполняется парой ключ-значение, и значение поле должно быть закодировано с использованием Base64. Для получения подробной информации см Кодирование Base64.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is default.
    data:
    <your_key>: <your_value> # Enter a key-value pair. The value must be encoded using Base64.
    type: Opaque
  • kubernetes.io/dockerconfigjson тип

    Файл secret.yaml определён как показано ниже. Значение .dockerconfigjson должен быть закодирован с помощью Base64. Для получения подробностей см Base64 Encoding.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is default.
    data:
    .dockerconfigjson: eyJh***** # Content encoded using Base64.
    type: kubernetes.io/dockerconfigjson

    Чтобы получить .dockerconfigjson содержимое, выполните следующие шаги:

    1. Получите следующую информацию для входа в репозиторий образов.
      • Адрес репозитория образов: в разделе используется адрес в качестве примера. Замените его фактическим адресом.
      • Имя пользователя: в разделе используется имя пользователя в качестве примера. Замените его фактическим именем пользователя.
      • Пароль: Раздел использует пароль как пример. Замените его реальным паролем.
    2. Используйте Base64 для кодирования пары ключ-значение username:password и поместите закодированное содержимое в 3.
      echo -n "username:password" | base64

      Вывод команды:

      dXNlcm5hbWU6cGFzc3dvcmQ=
    3. Используйте Base64 для кодирования следующего JSON‑содержимого:
      echo -n '{"auths":{"address":{"username":"username","password":"password","auth":"dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64

      Вывод команды:

      eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=

      Закодированное содержимое — .dockerconfigjson содержимое.

  • kubernetes.io/tls тип

    Значение tls.crt и tls.key должно быть закодировано с помощью Base64. Подробности см Base64 кодирование.

    kind: Secret
    apiVersion: v1
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is default.
    data:
    tls.crt: LS0tLS1CRU*****FURS0tLS0t # Certificate content, which must be encoded using Base64.
    tls.key: LS0tLS1CRU*****VZLS0tLS0= # Private key content, which must be encoded using Base64.
    type: kubernetes.io/tls

  • IngressTLS тип

    Значение tls.crt и tls.key должны быть закодированы с использованием Base64. Для подробностей см Base64 кодирование.

    kind: Secret
    apiVersion: v1
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is default.
    data:
    tls.crt: LS0tLS1CRU*****FURS0tLS0t # Certificate content, which must be encoded using Base64.
    tls.key: LS0tLS1CRU*****VZLS0tLS0= # Private key content, which must be encoded using Base64.
    type: IngressTLS

Base64 кодирование

Для выполнения Base64 кодирования строки выполните следующую команду:

echo -n "Content to be encoded" | base64

Related Operations

После создания секрета вы можете обновить или удалить его, как описано в Table 2.

Note

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

Table 2 Related operations

Операция

Описание

Редактирование YAML-файла

Нажмите Редактировать YAML в строке, где находится целевой секрет, чтобы отредактировать его YAML‑файл.

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

  1. Выберите имя секрета, который нужно обновить, и нажмите Обновить.
  2. Измените информацию, ссылаясь на Таблица 1.
  3. Нажмите OK.

Удаление секрета

Выберите секрет, который хотите удалить, и нажмите Удалить.

Следуйте подсказкам, чтобы удалить секрет.

Удаление секретов пакетами

  1. Выберите секреты для удаления.
  2. Нажмите Удалить над списком секретов.
  3. Следуйте инструкциям, чтобы удалить секреты.