2017-07-14 11 views
0

私はクラスターIP 10.101.71.17とポート26379にバックエンドサービスを持っています。私は、このサービスIPを環境変数として渡す予定のフロントエンドデプロイメントを持っています。サービスクラスターIPとポートを環境変数として使用するKubernetes

フロントエンド-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 
--- 

私はポッド内のすべての環境変数を取得することができますが、私は、環境変数の値に割り当てる適切な方法だかわからないです。

答えて

1

あなたのフロントエンドアプリケーションでは、あなたのバックエンドサービスをAPI_URL環境変数と仮定します。

このような場合は、ちょうどあなたがサービスのためのDNS名を使用することを検討すべきである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" 

BACKEND_HTTP_SERVICE_HOSTを交換してください。

+0

私は動的な方法を望んでいたので、私は '$(BACKEND_HTTP_SERVICE_HOST)'を使用しました。いくつかの例を共有したり、DNS名を値としてどのように使用できるかを指摘したりできますか? – Umair

+0

バックエンドポッドを同じクラスタで実行している場合は、 'backend'という名前のサービスを作成します。フロントエンドのサービスから、このように参照することができます。 'backend.default.svc.cluster.local'で詳細を見ることができます。 https://kubernetes.io/docs/concepts/services-networking/service/ – sfgroups

関連する問題