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.