2017-07-14 1 views
0

Ich habe einen Back-End-Dienst auf Cluster IP 10.101.71.17 und Port 26379. Ich habe eine Front-End-Bereitstellung, wo ich diese Service-IP als Umgebungsvariable übergeben möchte.Kubernetes mit Service-Cluster IP und Port als Umgebungsvariablen

Frontend-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 
--- 

Ich kann im Inneren der Hülse alle Umgebungsvariablen erhalten, aber ich bin nicht sicher, was ist der richtige Weg, um es in die Umgebungsvariable Wert zuweisen.

Antwort

1

Ich gehe davon aus, dass Sie in Ihrer Front-End-Anwendung Ihren Back-End-Service in API_URL Umgebungsvariable beziehen.

Ist dies der Fall, ersetzen Sie einfach BACKEND_HTTP_SERVICE_HOST mit 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" 

Ihre berücksichtigen sollten den DNS-Namen für Dienste.

+0

Nun, da ich einen dynamischen Weg wollte, habe ich '$ (BACKEND_HTTP_SERVICE_HOST)' '. Kannst du ein Beispiel mit mir teilen oder in die Richtung zeigen, wie ich den DNS-Namen als Wert verwenden kann? – Umair

+0

Wenn Sie Ihre Back-End-Pods im selben Cluster ausführen, erstellen Sie den Dienst "Backend". dann von unserem Front-End-Service können Sie es so beziehen. 'backend.default.svc.cluster.local' können Sie diese Seite für Details ansehen. https://kubernetes.io/docs/concepts/services-networking/service/ – sfgroups

Verwandte Themen