2017-12-12 10 views
1

私のマイクロサービスには複数のコンテナがあり、それぞれ異なるポートにアクセスする必要があります。 Hasura CLIとプロジェクト構成ファイルを使用して、このサービスを複数のポートに公開するにはどうすればよいですか?Hasuraマイクロサービスを複数のポートに公開するにはどうすればよいですか?

編集:microserviceのk8s.yamlを追加する(@iamnatによって要求された) 私はそれぞれポート63798000にHTTP経由で公開すること、のは、私は二つの容器、containerAcontainerBがあるとしましょう。

apiVersion: v1 
items: 
- apiVersion: extensions/v1beta1 
    kind: Deployment 
    metadata: 
    creationTimestamp: null 
    labels: 
     app: www 
     hasuraService: custom 
    name: www 
    namespace: '{{ cluster.metadata.namespaces.user }}' 
    spec: 
    replicas: 1 
    strategy: {} 
    template: 
     metadata: 
     creationTimestamp: null 
     labels: 
      app: www 
     spec: 
     containers: 
     - name: containerA 
      image: imageA 
      ports: 
      - containerPort: 6379 
     - name: containerB 
      image: imageB 
      ports: 
      - containerPort: 8000 
     securityContext: {} 
     terminationGracePeriodSeconds: 0 
    status: {} 
- apiVersion: v1 
    kind: Service 
    metadata: 
    creationTimestamp: null 
    labels: 
     app: www 
     hasuraService: custom 
    name: www 
    namespace: '{{ cluster.metadata.namespaces.user }}' 
    spec: 
    ports: 
    - port: 6379 
     name: containerA 
     protocol: HTTP 
     targetPort: 6379 

    - port: 8000 
     name: containerB 
     protocol: HTTP 
     targetPort: 8000 

    selector: 
     app: www 
    type: ClusterIP 
    status: 
    loadBalancer: {} 
kind: List 
metadata: {} 
+0

あなたが公開したいのですが、他のポートが何であるかの情報と一緒にあなたの現在のk8s.yamlを貼り付けることはできますか? – iamnat

+0

@iamnat: 'k8s.yaml'で修正された質問 – sandip

+0

すでに複数のポートを公開しているようですね。あるいは、「公開する」と言ったときに、クラスタの外部から公開されるようにすることを意味しますか? – timothyclifford

答えて

2

TL; DR: - あなたは、kubernetesクラスタ内部[docs]


を公開し、この仕様あなたのK8Sを与えたい各HTTPエンドポイントのAPIゲートウェイルートを追加しますが、あなたのセットアップが見えるだろう何であります以下のように:

http://www.default:8000 -> containerA 
http://www.default:6379 -> containerB 

ですから、conf/routes.yamlでそれらのHTTPパスのそれぞれのルートを作成する必要があります。

www-a: 
    /: 
    upstreamService: 
     name: www 
     namespace: {{ cluster.metadata.namespaces.user }} 
    upstreamServicePath:/
    upstreamServicePort: 8000 
    corsPolicy: allow_all 
www-b: 
    /: 
    upstreamService: 
     name: www 
     namespace: {{ cluster.metadata.namespaces.user }} 
    upstreamServicePath:/
    upstreamServicePort: 6379 
    corsPolicy: allow_all 

これは、あなたが以下を得るだろう、ということを意味します

https://www-a.domain.com -> containerA 
https://www-a.domain.com -> containerB 
関連する問題