Kubernetes 使用服务集群 IP 和端口作为环境变量

Kubernetes using service cluster IP and port as environment variables

我在集群 IP 10.101.71.17 和端口 26379 上有一个后端服务。我有一个前端部署,我打算将此服务 IP 作为环境变量传递。

前端-deployment.yaml

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: frontend
  namespace: my-namespace
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: frontend
    spec:

      containers:
      - name: frontend
        image: localhost:5000/frontend
        command: [ "/usr/local/bin/node"]
        args: [ "./index.js" ]
        imagePullPolicy: IfNotPresent
        env:
        - name: NODE_ENV
          value: production
        - name: API_URL
          value: BACKEND_HTTP_SERVICE_HOST // Here
        - name: BASIC_AUTH
          value: "true"
        - name: SECURE
          value: "true"
        - name: PORT
          value: "443"
        ports:
        - containerPort: 443
        - containerPort: 80
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 8079
      nodeSelector:
        beta.kubernetes.io/os: linux
---

我可以获取 pod 内的所有环境变量,但我不确定将其分配给环境变量值的正确方法是什么。

我假设在您的前端应用程序中,您在 API_URL 环境变量中引用了您的后端服务。

如果是这种情况,只需将 BACKEND_HTTP_SERVICE_HOST 替换为 10.101.71.17:26379

        env:
        - name: NODE_ENV
          value: production
        - name: API_URL
          value: 10.101.71.17:26379 
        - name: BASIC_AUTH
          value: "true"
        - name: SECURE
          value: "true"
        - name: PORT
          value: "443"

您应该考虑为服务使用 DNS 名称。