从 Spring mvc 应用程序中读取已安装卷的秘密值
Read secret values from mounted volumes from Spring mvc application
我们在 AKS 中使用 tomcat 映像部署了一个 spring MVC 应用程序。
如何从作为卷挂载的 Secret 中获取值?
大多数示例指向 spring 仅引导
我正在增加秘密商店的价值
kind: Pod
apiVersion: v1
metadata:
name: nginx
namespace: default
labels:
aadpodidbinding: pod-mi
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: foo
mountPath: "/mnt/secrets"
readOnly: true
volumes:
- name: foo
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: spc.
可以看到 secret 被正确挂载:
kubectl -n default exec -it nginx -- bash
root@nginx:/# ls /mnt/secrets
service-one-secret
service-two-secret
Cat service-one-secret 没有 return 任何东西
任何人都可以建议一种从 spring mvc 应用程序读取其值的方法吗?
当您将机密作为卷安装到容器时,它会在该路径中显示机密的数据。例如,您使用以下命令创建一个秘密:
kubectl create secret generic basic-secret \
--from-literal=username="jsmith" \
--from-literal=password="mysupersecurepassword"
然后将机密作为卷安装:
...
spec:
volumes:
- name: vol-secret
secret:
secretName: my-secret
containers:
...
volumeMounts:
- name: vol-secret
mountPath: /etc/app/secrets
然后在/etc/app/secrets
路径下可以看到名为username
和password
的文件,其值是这样的:
/ # ls /etc/app/secrets
password user
/ # cat /etc/app/secrets/password
mysupersecurepassword
/ # cat /etc/app/secrets/username
jsmith
我们在 AKS 中使用 tomcat 映像部署了一个 spring MVC 应用程序。 如何从作为卷挂载的 Secret 中获取值?
大多数示例指向 spring 仅引导
我正在增加秘密商店的价值
kind: Pod
apiVersion: v1
metadata:
name: nginx
namespace: default
labels:
aadpodidbinding: pod-mi
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: foo
mountPath: "/mnt/secrets"
readOnly: true
volumes:
- name: foo
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: spc.
可以看到 secret 被正确挂载:
kubectl -n default exec -it nginx -- bash
root@nginx:/# ls /mnt/secrets
service-one-secret
service-two-secret
Cat service-one-secret 没有 return 任何东西
任何人都可以建议一种从 spring mvc 应用程序读取其值的方法吗?
当您将机密作为卷安装到容器时,它会在该路径中显示机密的数据。例如,您使用以下命令创建一个秘密:
kubectl create secret generic basic-secret \
--from-literal=username="jsmith" \
--from-literal=password="mysupersecurepassword"
然后将机密作为卷安装:
...
spec:
volumes:
- name: vol-secret
secret:
secretName: my-secret
containers:
...
volumeMounts:
- name: vol-secret
mountPath: /etc/app/secrets
然后在/etc/app/secrets
路径下可以看到名为username
和password
的文件,其值是这样的:
/ # ls /etc/app/secrets
password user
/ # cat /etc/app/secrets/password
mysupersecurepassword
/ # cat /etc/app/secrets/username
jsmith