2017-01-01 5 views
2

3種類のバックエンドタイプのアプリケーションがあります。彼らはそれぞれ異なるポートでリッスンしています(8080,81880,8280など)。 http://example.com:{8080,8180,8280}を使用してアクセスします。安全のためには、各サービスの2つのポッドを実行する必要があります。複数のバックエンドポートを持つkubernetesロードバランサ

  1. yamlファイルは、それぞれ異なるポートを持つ複数のバックエンドでどのように見えるでしょうか?
  2. レプリカの定義を同じファイルに含めることはできますか?あるいは、私が他のファイルを含めることができるkubernetesの主要なファイルがありますか?

答えて

0

これを行うには、複数のサービスを作成します(詳細はhttp://kubernetes.io/docs/user-guide/services/を参照)。

の例では、(あなたはまた、JSONを使用することができ、YAMLを使用して)次のようになります。

apiVersion: v1 
kind: Service 
metadata: 
    name: yourservice_1 
    namespace: default 
    labels: 
    component: yourcomponent 
spec: 
    type: NodePort 
    selector: 
    component: yourcomponent 
    ports: 
    - name: http 
    port: 8080 
    protocol: TCP 
--- 
apiVersion: v1 
kind: Service 
metadata: 
    name: yourservice_2 
    namespace: default 
    labels: 
    component: yourcomponent 
spec: 
    type: NodePort 
    selector: 
    component: yourcomponent 
    ports: 
    - name: http 
    port: 8081 
    protocol: TCP 
--- 
Etc. 

そして、あなたの質問の後半部分に答えるために:

を---持つことです1つのファイルに複数の定義(サービスでも、任意のkubernetes yamlでもかまいません)が可能です。

しかし、一般的に一度だけロードされる傾向があるので、サービスのための別のファイルをアドバイスしてください。

複数のサービス定義に注意してください:少なくとも(私が使用しているKubernetes 1.3.5/1.3.6のバージョンでは)、セレクタの特定の組み合わせができるだけ多くのポッドから始まるkubernetes。これを防ぐには:テストと実験。この状態を避ける限り、機能します。

単一のサービス・エントリ・ポイントも使用することができるように定義することができます:あなたはすべてのこれらのサービスのための単一のエントリポイントを取得するにはどうすればよい

apiVersion: v1 
kind: Service 
metadata: 
    name: yourservice_1 
    namespace: default 
    labels: 
    component: yourcomponent 
spec: 
    type: NodePort 
    selector: 
    component: yourcomponent 
    ports: 
    - name: http 
    port: 8080 
    protocol: TCP 
    - name: http2 
    port: 8081 
    protocol: TCP 
    - name: http2 
    port: 8082 
    protocol: TCP 
+1

?元の質問は:http:// example.com' ... –

+0

ああ、異なる質問を理解した。答えのパート2を参照してください。 –

関連する問題