k8s部署Spring Boot 应用程序时通过环境变量配置数据源属性

使用 Spring Boot 应用程序时,可以通过环境变量配置数据源属性,比如用户名和密码。你已经提供了一个示例,下面是如何在 Kubernetes 中使用 Secret 来配置 Spring Boot 数据源的完整步骤。

1. 创建 Secret

首先,创建一个 Secret,包含 MySQL 的用户名和密码。确保使用 base64 编码这些值。

apiVersion: v1
kind: Secret
metadata:
  name: mysql-account-secret
type: Opaque
data:
  user: bXlzcWx1c2Vy  # base64 编码后的用户名
  password: bXlzcWxwYXNzd29yZA==  # base64 编码后的密码

使用以下命令创建 Secret:

kubectl apply -f mysql-account-secret.yaml

2. 部署 Spring Boot 应用

在 Deployment 文件中引用 Secret 中的用户名和密码作为环境变量。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-boot-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-boot-app
  template:
    metadata:
      labels:
        app: spring-boot-app
    spec:
      containers:
      - name: spring-boot-app
        image: your-spring-boot-app-image
        env:
        - name: SPRING_DATASOURCE_USERNAME
          valueFrom:
            secretKeyRef:
              name: mysql-account-secret
              key: user
        - name: SPRING_DATASOURCE_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-account-secret
              key: password
        # 如果需要,还可以添加其他环境变量,如数据库 URL
        - name: SPRING_DATASOURCE_URL
          value: jdbc:mysql://my-database:3306/mydb

使用以下命令部署应用:

kubectl apply -f spring-boot-app-deployment.yaml

3. 在 Spring Boot 应用中使用环境变量

Spring Boot 自动支持从环境变量中读取配置,因此不需要额外的代码更改。Spring Boot 会自动将环境变量 SPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD 映射到 spring.datasource.usernamespring.datasource.password 配置属性。

通过这种方式,你可以在 Kubernetes 中安全地管理 Spring Boot 应用的 MySQL 配置。确保你的应用已经配置为使用 Spring Boot 的自动配置功能来读取这些环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值