Kubernetes хранит пару ключ-значение в Secret.yml

Мне интересно, возможно ли сохранить пару ключ-значение в Secret.yml. Я хочу иметь возможность хранить ключ шифрования в качестве значения и идентификатор в качестве его ключа, который я могу использовать для получения ключа шифрования, хранящегося в Secret.yml.

Доступна ли такая функциональность в Kubernetes?

РЕДАКТИРОВАТЬ Я должен был сказать в своем исходном сообщении, я хочу иметь возможность хранить несколько пар и добавлять пары в течение срока службы моего приложения и использовать разные ключи шифрования на лету без / минимального обновления для моего приложения.

2 ответа

Да, секреты - это пары ключ-значение. Вы можете создать их, используя kubectl:

kubectl create secret the-secret-name --from-literal=KEY=VALUE

Затем вы можете посмотреть / отредактировать спецификацию yaml через

#get
kubectl get secret the-secret-name -o yaml
#edit
kubectl edit secret the-secret-name

Секрет выглядит так:

apiVersion: v1
kind: Secret
metadata:
  name: the-secret-name
type: Opaque
data:
   # the value is base64 encoded
   KEY: VkFMVUUK

Хотя в большинстве случаев лучше использовать две пары ключ-значение в вашей ситуации. Причина этого в том, что искать ключ с неизвестным именем сложнее / дороже, чем искать значение под ключом.

Спасибо, ребята, за ваши ответы. Я обнаружил, что использование приведенного ниже формата в Secret.yaml работает хорошо:

encryptionKey |
KeyName: 123456abcdef
SecondKeyName: abcdef123456

Затем я получу пары ключ-значение в виде Map в моем Java-приложении и обработаю их так, чтобы я мог, например, найти ключ KeyName и получить значение, которое мне нужно.

Секрет Kubernetes хранит данные в виде пары ключ-значение (ссылка: https://kubernetes.io/docs/concepts/configuration/secret/).

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  key: dmFsdWU=

Здесь значение в кодировке base64.

Другие вопросы по тегам