Секрет — это тип ресурса, который хранит конфиденциальные данные, такие как информация об аутентификации и ключах. Его содержимое определяется пользователем. После создания секретов их можно использовать в виде файлов или переменных окружения в контейнеризованной рабочей нагрузке.
Секреты нельзя использовать в static pods.
Параметр | Описание |
|---|---|
Имя | Имя секрета, который вы создаёте, должно быть уникальным. |
Пространство имён | Пространство имён, к которому принадлежит секрет. Если вы не укажете этот параметр, значение по умолчанию используется по умолчанию. |
Описание | Описание секрета. |
Тип секрета | Тип секрета, который вы создаёте.
|
Данные | Данные секрета нагрузки могут использоваться в контейнерах.
|
Метка секрета | Метка секрета. Нажмите Добавить метку и введите пары ключ‑значение. Ключ и значение должны содержать от 1 до 63 символов, начинающихся и заканчивающихся буквой или цифрой. Разрешены только буквы, цифры, дефисы (-), подчеркивания (_) и точки (.). |
Новый секрет отображается в списке ключей.
# echo -n "content-to-be-encoded" | base64******
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
В этом разделе описаны примеры конфигурации файлов описания ресурса secret.
The secret.yaml файл определён, как показано ниже. The данные поле заполняется парой ключ-значение, и значение поле должно быть закодировано с использованием Base64. Для получения подробной информации см Кодирование Base64.
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
Файл secret.yaml определён как показано ниже. Значение .dockerconfigjson должен быть закодирован с помощью Base64. Для получения подробностей см Base64 Encoding.
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 содержимое, выполните следующие шаги:
echo -n "username:password" | base64
Вывод команды:
dXNlcm5hbWU6cGFzc3dvcmQ=
echo -n '{"auths":{"address":{"username":"username","password":"password","auth":"dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64
Вывод команды:
eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=
Закодированное содержимое — .dockerconfigjson содержимое.
Значение 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
Значение 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
Для выполнения Base64 кодирования строки выполните следующую команду:
echo -n "Content to be encoded" | base64
После создания секрета вы можете обновить или удалить его, как описано в Table 2.
Список секретов содержит системные ресурсы секретов, которые можно только запросить. Системные ресурсы секретов нельзя обновлять или удалять.
Операция | Описание |
|---|---|
Редактирование YAML-файла | Нажмите Редактировать YAML в строке, где находится целевой секрет, чтобы отредактировать его YAML‑файл. |
Обновление секрета |
|
Удаление секрета | Выберите секрет, который хотите удалить, и нажмите Удалить. Следуйте подсказкам, чтобы удалить секрет. |
Удаление секретов пакетами |
|