secret — это ресурс Kubernetes, используемый для хранения конфиденциальной информации, такой как учетные данные аутентификации и ключи, необходимые рабочим нагрузкам. Содержимое секрета определяется пользователями. После создания секрета контейнеризованные рабочие нагрузки могут безопасно использовать его через монтирование томов или внедрение переменных окружения.
Секреты отделяют конфиденциальные данные от образов контейнеров, предотвращая их раскрытие в открытом виде в образах или файлах конфигурации. Это значительно снижает риск утечки данных и повышает безопасность и переносимость рабочих нагрузок.
Секреты нельзя использовать в static pods.
Параметр | Описание |
|---|---|
Имя | Имя создаваемого секрета, которое должно быть уникальным. |
Namespace | Namespace, к которому относится секрет. Если вы не укажете этот параметр, используется значение default по умолчанию. |
Description | Описание секрета. |
Secret Type | Тип секрета, который вы создаёте.
|
Data | Данные секрета рабочей нагрузки могут использоваться в контейнерах.
|
Tag Management (Optional) | Метки секрета. Нажмите Add Label и введите пары ключ‑значение. Ключ и значение должны содержать от 1 до 63 символов, начинающихся и заканчивающихся буквой или цифрой. Разрешены только буквы, цифры, дефисы (-), подчеркивания (_) и точки (.). |
Новый секрет отображается в списке ключей.
# echo -n "content-to-be-encoded" | base64******
vi cce-secret.yaml
Следующий файл YAML использует тип Opaque в качестве примера. Подробности о других типах см. в Secret Resource File Configuration Example.
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.
Файл secret.yaml определён как показано ниже. Поле data заполняется парой ключ‑значение, а поле value должно быть закодировано с использованием 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
Файл 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
Command output:
eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=
Закодированное содержимое — это содержимое .dockerconfigjson.
Значения tls.crt и tls.key должны быть закодированы с помощью Base64. Подробности см. в Base64 Encoding.
Значения tls.crt и tls.key должны быть закодированы с помощью Base64. Подробности см. в Base64 Encoding.
Чтобы выполнить кодирование Base64 строки, выполните следующую команду:
echo -n "Content to be encoded" | base64
После создания secret вы можете обновить или удалить его, как описано в Table 2. Список secret содержит системные ресурсы secret, которые можно только запрашивать. Системные ресурсы secret нельзя обновлять или удалять.
Операция | Описание |
|---|---|
Редактирование YAML‑файла secret | нажмите Edit YAML в строке, где находится целевой секрет, чтобы отредактировать его YAML‑файл. |
Обновление секрета |
|
Удаление секрета | Выберите секрет, который нужно удалить, и выберите More > Delete. Следуйте подсказкам, чтобы удалить секрет. |
Пакетное удаление секретов |
|