簡體   English   中英

如何使用 Kubernetes YAML 文件在 spring-boot 容器上為 spring.datasource 設置環境? 和 Docker YAML 一樣嗎?

[英]How do I set the environment for spring.datasource on a spring-boot container using a Kubernetes YAML file ? Is it the same as Docker YAML?

所以前幾天我剛剛了解了 Docker,我可以在我的 Docker-Compose YAML 文件中使用如下內容:

environment:
        - spring.datasource.url=jdbc:postgresql://192.168.100.100/my_database
        - spring.datasource.username=my_username
        - spring.datasource.password=my_password!@#$$

我喜歡在我的 Kubernetes YAML 文件上實現這個。 我怎樣才能做到這一點?

不。Kubernetes yaml 文件和 docker-compose 文件是不同的。 檢查 Kompose ( https://github.com/kubernetes/kompose ) 工具將您的 docker-compose 轉換為 kubernetes 文件。

您可以像在 Docker Files 上一樣在 YAML 上聲明環境變量,只是使用不同的語法。

這是您要求的示例:

apiVersion: v1
kind: Pod
metadata:
  name: envar-demo
spec:
  containers:
  - name: envar-demo
    image: busybox
    args:
    - sleep
    - "86400"
    env:
    - name: spring.datasource.url
      value: "jdbc:postgresql://192.168.100.100/my_database"
    - name: spring.datasource.username
      value: "my_username"
    - name: spring.datasource.password
      value: "my_password!@#$"

現在我將創建一個簡單的 busybox 容器來在運行時顯示激活的變量:

user@minikube:~$ kubectl apply -f envar-pod.yaml
pod/envar-demo created

user@minikube:~$ kubectl get pods
NAME         READY   STATUS    RESTARTS   AGE
envar-demo   1/1     Running   0          8s

user@minikube:~$ kubectl exec -it envar-demo -- /bin/sh
/ # printenv
HOSTNAME=envar-demo
SHLVL=1
HOME=/root
TERM=xterm
spring.datasource.password=my_password!@#$
spring.datasource.url=jdbc:postgresql://192.168.100.100/my_database
spring.datasource.username=my_username
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
/ #

有關更多信息,請參閱環境變量暴露

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM