Сценарий
Секрет — это тип ресурса, который хранит конфиденциальные данные, такие как аутентификация и ключевая информация. Его содержимое определяется пользователем. После создания секретов их можно использовать в виде файлов или переменных окружения в контейнеризированной рабочей нагрузке.
Примечания и ограничения
Секреты нельзя использовать в static pods.
Процедура
- Войдите в консоль CCE и щелкните название кластера, чтобы открыть консоль кластера.
- Выберите ConfigMaps и Secrets в навигационной панели щелкните Секреты вкладку, и щелкните Создать секрет в правом верхнем углу.
- Настройте параметры.
Таблица 1 Параметры для создания секрета Параметр
Описание
Имя
Имя секрета, который вы создаёте, должно быть уникальным.
Пространство имён
Пространство имён, к которому принадлежит секрет. Если вы не укажете этот параметр, значение default используется по умолчанию.
Описание
Описание секрета.
Тип
Тип создаваемого секрета.
- Opaque: общий секрет.
- kubernetes.io/dockerconfigjson: секрет, который хранит информацию об аутентификации, необходимую для загрузки образов из приватного репозитория.
- kubernetes.io/tls: Kubernetes TLS secret, который используется для хранения сертификата, необходимого для служб балансировки нагрузки уровня‑7. Для получения подробностей о примерах kubernetes.io/tls секрет и его описание, см. TLS секреты.
- IngressTLS: TLS secret, предоставляемый CCE для хранения сертификата, необходимого для служб балансировки нагрузки уровня‑7.
- Прочее: другой тип секрета, задаваемый вручную.
Секретные данные
Данные секрета рабочей нагрузки могут использоваться в контейнерах.
- Если Тип секрета является Непрозрачный, нажмите
. В отображаемом диалоговом окне введите пару ключ‑значение и выберите Авто Base64 кодирование.
- Если Тип секрета равен kubernetes.io/dockerconfigjson, введите учетную запись и пароль для входа в приватный репозиторий образов.
- Если Тип секрета равен kubernetes.io/tls или IngressTLS, загрузите файл сертификата и файл закрытого ключа.ПРИМЕЧАНИЕ:
- Сертификат — это самоподписанный или подписанный УЦ учетный документ, используемый для аутентификации личности.
- Запрос сертификата — это запрос подписи с использованием закрытого ключа.
Метка секрета
Метка секрета. Введите пару ключ‑значение и нажмите Подтвердить.
- Нажмите OK.
Новый секрет отображается в списке ключей.
Пример конфигурации файла ресурса секрета
В этом разделе описаны примеры конфигураций файлов описания ресурса секрета.
- Opaque тип
The secret.yaml файл определен как показано ниже. The данные поле заполняется как пара ключ-значение, и значение поле должно быть закодировано с использованием Base64. Подробнее о методе кодирования Base64 см. Base64 Encoding.
apiVersion: v1kind: Secretmetadata:name: mysecret #Secret namenamespace: 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 тип
The secret.yaml файл определён как показано ниже. Значение .dockerconfigjson должен быть закодирован с использованием Base64. За подробностями см Кодирование Base64.
apiVersion: v1kind: Secretmetadata:name: mysecret #Secret namenamespace: default #Namespace. The default value is default.data:.dockerconfigjson: eyJh***** # Content encoded using Base64.type: kubernetes.io/dockerconfigjsonЧтобы получить .dockerconfigjson содержимое, выполните следующие шаги:
- Получите следующую информацию для входа в репозиторий образов.
- Адрес репозитория образов: В разделе используется адрес в качестве примера. Замените его фактическим адресом.
- Имя пользователя: В разделе используется имя пользователя в качестве примера. Замените его фактическим именем пользователя.
- Пароль: В разделе используется пароль в качестве примера. Замените его фактическим паролем.
- Используйте Base64 для кодирования пары ключ-значение username:password и заполните закодированное содержимое в 3.echo -n "username:password" | base64
Вывод команды:
dXNlcm5hbWU6cGFzc3dvcmQ= - Используйте 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: SecretapiVersion: v1metadata:name: mysecret #Secret namenamespace: 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: SecretapiVersion: v1metadata:name: mysecret #Secret namenamespace: 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
Создание секрета с помощью kubectl
- Используйте kubectl для доступа к кластеру. Для получения подробной информации см Доступ к кластеру с помощью kubectl.
- Закодируйте значение секрета с использованием Base64.# echo -n "content-to-be-encoded" | base64******
- Создайте файл с именем cce-secret.yaml и отредактируйте его.vi cce-secret.yaml
Ниже приведён YAML‑файл, использующий тип Opaque в качестве примера. Для получения подробной информации о других типах см Пример конфигурации файла ресурса Secret.
apiVersion: v1kind: Secretmetadata:name: mysecrettype: Opaquedata:<your_key>: <your_value> # Enter a key-value pair. The value must be encoded using Base64. - Создайте секрет.kubectl create -f cce-secret.yaml
Вы можете выполнить запрос секрета после создания.
kubectl get secret -n default
Связанные операции
После создания секрета вы можете обновить или удалить его, как описано в Таблица 2.
Список секретов содержит системные ресурсы секретов, которые можно только запрашивать. Системные ресурсы секретов нельзя обновлять или удалять.
Операция | Описание |
|---|---|
Редактирование YAML файла | Нажмите Редактировать YAML в строке, где находится целевой секрет, чтобы отредактировать его YAML‑файл. |
Обновление секрета |
|
Удаление секрета | Выберите секрет, который хотите удалить, и нажмите Удалить. Следуйте инструкциям, чтобы удалить секрет. |
Удаление секретов пакетно |
|
Base64-кодирование
Чтобы выполнить Base64‑кодирование строки, запустите echo -n содержимое для кодирования | base64 команда. Ниже приведён пример:
root@ubuntu:~# echo -n "content to be encoded" | base64******