2016-12-14 2 views
0

Kubernetesクラスタ上でレプリケーションを使用してPostgresサービスを導入したい。Kubernetesに異なるポッドリソースを持つ1つのサービスを設定できますか?

私はこのためにPetSetとServiceを定義しました。しかし、私はKubernetesがこれらのノードをノードにランダムに割り当てるため、サービス内のすべてのポッドに同じリソース制限を定義することしかできません。

私は別のポッド資源のconfとサービスを持つことができる方法はありますか?

私の現在のyamlを参考にしてください。

https://github.com/kubernetes/charts/blob/master/incubator/patroni/templates/ps-patroni.yaml

+0

ちょうど興味があります - それはどのような問題を引き起こしますか?デプロイメント+サービスとして「通常の方法」を採用しているので、私は尋ねています。したがって、yamlファイルでnodepoolを選択するので、必要なノードをターゲットにできます。 – JosMac

答えて

0

あなたが同じレプリカでポッドに異なる構成オプション(すなわち、リソースの制限)を割り当てることができません。本質的にそれらは同一であることを意味する。これを達成するには、複数のレプリカを作成する必要があります。

0

サービスの場合、異なるnodeSelector構成の複数の展開を1つのServiceの定義の背後に持つことができます。

など。

kubectl label nodes node-1 pool=freshhardware 
kubectl label nodes node-2 pool=freshhardware 
kubectl label nodes node-3 pool=shakyhardware 

をし、このように二つの展開があります:あなたはこのようなあなたのノードにラベルを付けることができ二つだけで、これらのフィールドと同じように見える可能性が...

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: my-nginx 
spec: 
    replicas: 4 
    template: 
    metadata: 
     labels: 
     run: my-nginx 
    spec: 
     containers: 
     - name: my-nginx 
     image: nginx 
     ports: 
     - containerPort: 80 
     nodeSelector: 
     pool: freshhardware 

を交換:

 nodeSelector: 
     pool: shakyhardware 

このようなサービス定義では、両方の配備のすべてのポッドが考慮されます。

apiVersion: v1 
kind: Service 
metadata: 
    name: my-nginx 
    labels: 
    run: my-nginx 
spec: 
    ports: 
    - port: 80 
    protocol: TCP 
    selector: 
    run: my-nginx 

もちろん、欠点は一度に2つの配備を管理しなければならないことですが、それはこの問題のビルドインのようなものです。

関連する問題