Kubernetes хранит пару ключ-значение в Secret.yml - PullRequest
0 голосов
/ 19 ноября 2018

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

Имеются ли такие функции в Kubernetes?

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

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Да, секреты являются парами ключ-значение.Вы можете создать их, используя 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

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

0 голосов
/ 22 января 2019

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

encryptionKey |
KeyName: 123456abcdef
SecondKeyName: abcdef123456

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

0 голосов
/ 19 ноября 2018

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

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

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

...