我想知道是否可以在Secret.yml中存储键值对。 我希望能够将加密密钥存储为值和ID作为其密钥,可以用来检索存储在Secret.yml中的加密密钥。
Kubernetes可以使用这种功能吗?
编辑 我应该在原始消息中说过,我希望能够在应用程序的生命周期内存储多对并添加对,并能够即时使用不同的加密密钥,而无需/对应用程序进行最小更新。
答案 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
并获取所需的值。