Spring boot 来自helm的Spring boot log secret.yaml
我正从赫尔姆开始。我已经定义了部署、服务、配置映射和机密yaml文件 我有一个简单的spring启动应用程序,具有基本的http身份验证,用户名和密码在机密文件中定义 我的应用程序部署正确,当我在浏览器中测试它时,它告诉我用户名和密码是错误的 有没有办法知道spring boot从helms接收到的值是多少 还是有办法解密secret.yaml文件 价值观Spring boot 来自helm的Spring boot log secret.yaml,spring-boot,kubernetes-helm,Spring Boot,Kubernetes Helm,我正从赫尔姆开始。我已经定义了部署、服务、配置映射和机密yaml文件 我有一个简单的spring启动应用程序,具有基本的http身份验证,用户名和密码在机密文件中定义 我的应用程序部署正确,当我在浏览器中测试它时,它告诉我用户名和密码是错误的 有没有办法知道spring boot从helms接收到的值是多少 还是有办法解密secret.yaml文件 价值观 image: repository: myrepo.azurecr.io name: my-service tag: lates
image:
repository: myrepo.azurecr.io
name: my-service
tag: latest
replicaCount: 1
users:
- name: "admin"
password: "admintest"
authority: "admin"
- name: "user-test"
password: "usertest"
authority: "user"
spring:
datasource:
url: someurl
username: someusername
password: somepassword
platform: postgresql
机密文件
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-{{ .Chart.Name }}-secret
stringData:
spring.datasource.url: "{{ .Values.spring.datasource.url }}"
spring.datasource.username: "{{ .Values.spring.datasource.username }}"
spring.datasource.password: "{{ .Values.spring.datasource.password }}"
spring.datasource.platform: "{{ .Values.spring.datasource.platform }}"
{{- range $idx, $user := .Values.users }}
users_{{ $idx }}_.name: "{{ $user.name }}"
users_{{ $idx }}_.password: "{{ printf $user.password }}"
users_{{ $idx }}_.authority: "{{ printf $user.authority }}"
{{- end }}
通常情况下,secret.yaml文件中的秘密不会被加密,而是用base64编码。因此,您可以在工具中解码机密的内容,就像您可以访问kubernetes仪表板一样,该仪表板还提供了查看机密价值的方法 如果你正在注入秘密,那么你可以用
kubeclt get pods
找到pod,然后kubectl descripe pod
将包含注入的环境变量的输出
有了helm,我发现运行
helm install--dry run--debug
非常有用,因为这样您就可以在控制台中确切地看到将从该安装模板创建哪些kubernetes资源 很奇怪,我打印了秘密文件中的值。它具有预期的凭据,但我仍然在访问应用程序时遇到问题,它再次要求输入用户名和密码。我要将value.yaml和secret.yaml与测试值相加这些秘密是作为环境变量注入的还是用于生成挂载在Pod中的属性文件?无论哪种方式,您都可以kubectl exec-it--/bin/bash
进入pod,并使用shell查看它所看到的内容(通过回显env var或对文件执行more
)。不过,如果在启动过程中失败,那么您可能只有一个很短的执行窗口。也许你可以通过临时硬编码来为自己赢得更多的执行时间,以确保它启动,并使自己能够进行更多的调试。我不太熟悉shell,我运行命令,但我应该执行哪些命令?或者你能给我一个链接参考来检查吊舱吗。这些值作为属性文件的变量注入,我的application.properties文件的值与secret相同(数据库凭据和用户名/密码)。你能给我推荐一些调试技术吗?我应该在哪里调试?如果它在values.yaml的属性文件中,那么您需要在Pod中装载属性文件。这意味着您的部署资源应该包含装载到/config
的volumeMounts
部分和引用该机密的volumes
部分。我先检查一下。(你可以在《将游戏带到Minikube》中找到一些关于这一点的解释,尽管注意这是一个configmap示例,所以对于机密,语法有点不同)。在q中包含卷和挂载会很酷。一旦您运行了kubectl exec-it--/bin/bash
,那么您应该能够执行cd/config
,然后执行更多的应用程序。属性
。获取装载机密的语法-