我们在AKS中使用tomcat映像部署了一个spring MVC应用程序。如何从安装为卷的秘密中获取值?
大多数示例只指向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.
可以看到秘密被正确地挂载:
kubectl -n default exec -it nginx -- bash
root@nginx:/# ls /mnt/secrets
service-one-secret
service-two-secret
Cat service-one-secret不返回任何东西
可以有人建议一种方法来读取其值从spring mvc应用程序?
当您将secret作为卷挂载到容器中时,它将在该路径中显示secret的数据。例如,您可以使用以下命令创建一个秘密:
kubectl create secret generic basic-secret
--from-literal=username="jsmith"
--from-literal=password="mysupersecurepassword"
然后将secret挂载为卷:
...
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