使用 K8s configmaps 传递应用程序配置
passing application configuration using K8s configmaps
如何使用 configmaps
将 application.properties
传递给 Spring 启动应用程序。由于application.yml
文件包含敏感信息,因此需要传入secrets
和configmaps
。在这种情况下,我们必须将敏感和非敏感配置数据都传递给 Spring boot pod 的选项是什么。
我目前正在使用 Spring 云配置服务器,Spring 云配置服务器可以使用 encrypt.key
加密敏感数据并解密密钥。
您可以将 Secret 作为卷挂载,与 ConfigMaps 相同。例如:
创建密钥。
kubectl create secret generic ssh-key-secret --from-file=application.properties
然后挂载为卷:
apiVersion: v1
kind: Pod
metadata:
name: secret-test-pod
labels:
name: secret-test
spec:
volumes:
- name: secret-volume
secret:
secretName: ssh-key-secret
containers:
- name: ssh-test-container
image: mySshImage
volumeMounts:
- name: secret-volume
readOnly: true
mountPath: "/etc/secret-volume"
更多信息见https://kubernetes.io/docs/concepts/configuration/secret/
@paltaa 描述的 ConfigMaps 可以解决非敏感信息的问题。对于敏感信息,我会使用 sealedSecret.
Sealed Secrets 由两部分组成:
- 集群端控制器/操作员
- 客户端实用程序:kubeseal
kubeseal 实用程序使用非对称加密来加密只有控制器才能解密的秘密。
这些加密的秘密编码在 SealedSecret 资源中,您可以将其视为创建秘密的秘诀。
安装后,您可以像往常一样创建您的秘密,然后您可以:
kubeseal --format=yaml < secret.yaml > sealed-secret.yaml
您可以安全地将您的 sealedSecret 推送到 github 等
这个正常的 kubernetes 秘密将在几秒钟后出现在集群中,您可以像使用您直接创建的任何秘密一样使用它(例如,从 Pod 引用它)。
如何使用 configmaps
将 application.properties
传递给 Spring 启动应用程序。由于application.yml
文件包含敏感信息,因此需要传入secrets
和configmaps
。在这种情况下,我们必须将敏感和非敏感配置数据都传递给 Spring boot pod 的选项是什么。
我目前正在使用 Spring 云配置服务器,Spring 云配置服务器可以使用 encrypt.key
加密敏感数据并解密密钥。
您可以将 Secret 作为卷挂载,与 ConfigMaps 相同。例如:
创建密钥。
kubectl create secret generic ssh-key-secret --from-file=application.properties
然后挂载为卷:
apiVersion: v1
kind: Pod
metadata:
name: secret-test-pod
labels:
name: secret-test
spec:
volumes:
- name: secret-volume
secret:
secretName: ssh-key-secret
containers:
- name: ssh-test-container
image: mySshImage
volumeMounts:
- name: secret-volume
readOnly: true
mountPath: "/etc/secret-volume"
更多信息见https://kubernetes.io/docs/concepts/configuration/secret/
@paltaa 描述的 ConfigMaps 可以解决非敏感信息的问题。对于敏感信息,我会使用 sealedSecret.
Sealed Secrets 由两部分组成:
- 集群端控制器/操作员
- 客户端实用程序:kubeseal
kubeseal 实用程序使用非对称加密来加密只有控制器才能解密的秘密。
这些加密的秘密编码在 SealedSecret 资源中,您可以将其视为创建秘密的秘诀。
安装后,您可以像往常一样创建您的秘密,然后您可以:
kubeseal --format=yaml < secret.yaml > sealed-secret.yaml
您可以安全地将您的 sealedSecret 推送到 github 等
这个正常的 kubernetes 秘密将在几秒钟后出现在集群中,您可以像使用您直接创建的任何秘密一样使用它(例如,从 Pod 引用它)。