相关疑难解决方法(0)

Kubernetes-将负载平衡的公共IP作为环境变量传递到Pod

要旨

我有一个ConfigMap为我的Pod提供必要的环境变量:

apiVersion: v1
kind: ConfigMap
metadata:
  name: global-config
data:
  NODE_ENV: prod
  LEVEL: info

  # I need to set API_URL to the public IP address of the Load Balancer
  API_URL: http://<SOME IP>:3000

  DATABASE_URL: mongodb://database:27017
  SOME_SERVICE_HOST: some-service:3000
Run Code Online (Sandbox Code Playgroud)

我正在Google Cloud上运行Kubernetes集群,因此它将自动为我的服务创建一个公共端点:

apiVersion: v1
kind: Service
metadata:
  name: gateway
spec:
  selector:
    app: gateway
  ports:
    - name: http
      port: 3000
      targetPort: 3000
      nodePort: 30000
  type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)

问题

我有一个Web应用程序,需要从客户端浏览器向gateway服务发出HTTP请求。但是为了向外部服务发出请求,Web应用程序需要知道它的IP地址。

因此,我设置了pod,该pod以某种方式为Web应用程序提供服务,它选择了一个环境变量“ API_URL”,从而使所有HTTP请求都对该URL进行了请求。

因此,我只需要一种方法即可将API_URL环境变量设置为服务的公共IP地址,gateway以便在启动时将其传递到pod中。

environment-variables google-cloud-platform kubernetes google-kubernetes-engine

5
推荐指数
1
解决办法
262
查看次数