Kubernetes在Secret.yml中存储键值对

时间:2018-11-19 13:47:41

标签: kubernetes kubernetes-secrets

我想知道是否可以在Secret.yml中存储键值对。 我希望能够将加密密钥存储为值和ID作为其密钥,可以用来检索存储在Secret.yml中的加密密钥。

Kubernetes可以使用这种功能吗?

编辑 我应该在原始消息中说过,我希望能够在应用程序的生命周期内存储多对并添加对,并能够即时使用不同的加密密钥,而无需/对应用程序进行最小更新。

3 个答案:

答案 0 :(得分:1)

是的,secrets是键值对。您可以使用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

在大多数情况下,最好根据情况使用两个键值对。这样做的原因是,查找名称未知的键比查找键下的值要复杂/昂贵。

答案 1 :(得分:0)

Kubernetes机密将数据存储为键值对(参考:https://kubernetes.io/docs/concepts/configuration/secret/)。

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

此处的值是base64编码的。

答案 2 :(得分:0)

谢谢你们的回答。我发现在Secret.yaml中使用以下格式效果很好:

encryptionKey |
KeyName: 123456abcdef
SecondKeyName: abcdef123456

然后,我将把键值对作为Java应用程序中的Map进行处理,这样就可以例如搜索键KeyName并获取所需的值。