为了账号安全,请及时绑定邮箱和手机立即绑定

在 kubernetes 中部署时如何在 golang 中使用 ENV var

在 kubernetes 中部署时如何在 golang 中使用 ENV var

Go
陪伴而非守候 2022-10-24 16:28:24
我目前正在使用 golang 开发一个小型 API,它将连接到 sql 数据库。下面是我静态传递数据库连接字符串详细信息的片段(在代码中硬编码)。const (DB_USER     = "username"DB_PASSWORD = "password"DB_NAME     = "db_name"DB_HOST     = "db_server_name"DB_PORT     = db_port )现在我想使用 ENV 变量使这个静态硬编码值变成动态的,所以任何人都可以使用 ENV vars 设置这些细节。有人可以帮助我如何实现这一目标。如何从代码中以这种方式设置它们,以便它可以在 k8 的部署中作为 ENV vars 动态传递?我当前的 deployment.yaml 文件如下apiVersion: apps/v1kind: Deploymentmetadata:  name: go-demo-appspec:  replicas: 1  selector:    matchLabels:      app: go-demo-app  template:    metadata:      labels:        app: go-demo-app    spec:      containers:        - name: go-demo-app          image: dockerhub/go-api:latest          resources: {}          ports:            - containerPort: 8001以上工作正常,因为数据库服务器名称在代码中是硬编码的,现在我可以通过代码使用 ENV vars 动态传递它,我可以在 k8 的部署中引用它
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

将 .yaml 更改为


apiVersion: apps/v1

kind: Deployment

metadata:

  name: go-demo-app

spec:

  replicas: 1

  selector:

    matchLabels:

      app: go-demo-app

  template:

    metadata:

      labels:

        app: go-demo-app

    spec:

      containers:

        - name: go-demo-app

          image: dockerhub/go-api:latest

          resources: {}

          ports:

            - containerPort: 8001

          env:

            - name: DB_USER

              value: username

            - name: DB_PASSWORD 

              value: password

            - name: DB_NAME     

              value: db_name

            - name: DB_HOST     

              value: db_server_name

            - name: DB_PORT     

              value: "3306"

kubectl apply -f /path/to/file


在您的代码上,将初始化更改为


var (

    DB_USER     = os.Getenv("DB_USER")

    DB_PASSWORD = os.Getenv("DB_PASSWORD")

    DB_NAME     = os.Getenv("DB_NAME")

    DB_HOST     = os.Getenv("DB_HOST")

    DB_PORT     = os.Getenv("DB_PORT")

)

我将 const 更改为 var 因为它是不允许的


查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号