首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从部署在Kubernetes的应用程序连接到外部数据库

从部署在Kubernetes的应用程序连接到外部数据库
EN

Stack Overflow用户
提问于 2019-04-13 15:57:29
回答 2查看 829关注 0票数 1

我正在部署一个微型库中的Spring应用程序,它连接到一个运行在主机上的数据库。按照12因素应用程序的建议,我使用环境变量进行必要的配置:

代码语言:javascript
复制
SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
SPRING_DATASOURCE_PASSWORD=...
SPRING_DATASOURCE_URL=jdbc:postgresql://<HOST_IP_FROM_K8S>:5432/myservice
SPRING_DATASOURCE_USERNAME=...

kubernetes文档只展示了如何在服务和部署.yaml文件中设置环境变量,我不想这样做。在我创建部署时,是否有一种方法可以在命令行中传递minikube或kubectl环境变量?(在Docker中,我使用-e来实现这一点。)

请注意,环境变量必须在启动应用程序之前设置,否则就会崩溃。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-18 14:14:55

在Ansil上面的评论之后,我使用configmapsecret来传递配置如下:

代码语言:javascript
复制
kubectl create secret generic springdatasourcepassword --from-literal=SPRING_DATASOURCE_PASSWORD=postgres
kubectl create secret generic springdatasourceusername --from-literal=SPRING_DATASOURCE_USERNAME=postgres
kubectl create configmap springdatasourcedriverclassname --from-literal=SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
kubectl create configmap springdatasourceurl --from-literal=SPRING_DATASOURCE_URL=jdbc:postgresql://172.18.0.1:5432/bookservice

这些内容在deployment.yaml文件中引用如下:

代码语言:javascript
复制
env:
- name: GET_HOSTS_FROM
  value: dns
- name: SPRING_DATASOURCE_DRIVER_CLASS_NAME
  valueFrom:
    configMapKeyRef:
      name: springdatasourcedriverclassname
      key: SPRING_DATASOURCE_DRIVER_CLASS_NAME
- name: SPRING_DATASOURCE_URL
  valueFrom:
    configMapKeyRef:
      name: springdatasourceurl
      key: SPRING_DATASOURCE_URL
- name: SPRING_DATASOURCE_PASSWORD
  valueFrom:
    secretKeyRef:
      name: springdatasourcepassword
      key: SPRING_DATASOURCE_PASSWORD
- name: SPRING_DATASOURCE_USERNAME
  valueFrom:
    secretKeyRef:
      name: springdatasourceusername
      key: SPRING_DATASOURCE_USERNAME

一个完整的解释可以找到这里

票数 1
EN

Stack Overflow用户

发布于 2019-04-13 16:39:40

create中,我们没有直接的kubectl子命令来传递环境变量。

您可以使用掌舵来自定义部署。

(例子:https://docs.bitnami.com/kubernetes/how-to/deploy-java-application-kubernetes-helm/)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55667314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档