如何在kubernetes Spring应用程序中设置mysql url的主机名作为环境变量?



我在kubernetes上有一个spring应用程序,它连接到mysql数据库。这是我的spring-deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
name: spring
spec:
selector:
matchLabels:
app: spring
replicas: 1
template:
metadata:
labels:
app: spring
spec:
containers:
- name: spring
image: docker/spring
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8091
env:
- name: SPRING_DATASOURCE_URL
value: jdbc:mysql://172.17.0.7:3306/buddyto_mstr_local?useSSL=false&allowPublicKeyRetrieval=true
- name: SPRING_DATASOURCE_USERNAME
value: root
- name: SPRING_DATASOURCE_PASSWORD
value: root
---
apiVersion: v1
kind: Service
metadata:
name: spring
spec:
ports:
- protocol: "TCP"
port: 8091
targetPort: 8091
selector:
app: sample-service
type: NodePort

这个值:jdbc:mysql://172.17.0.7:3306/buddyto_mstr_local?useSSL=false&allowPublicKeyRetrieval=true包含我运行kubectl get pods -o wide后得到的mysql pods的IP地址

每次我删除mysql部署并创建一个新的,一个新的IP地址被分配给mysql部署,所以我必须在这里从172.17.0.7更改为新的IP。

我想以一种方式设置它,这样我就不必每次都更改IP。我该怎么做呢?

Kubernetes为您的服务创建DNS条目,因此使用服务名称而不是使用IP。

请在这里阅读更多内容:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

相关内容

  • 没有找到相关文章

最新更新