bugfix> azure > 投稿

多数の異なる展開が実行されているクラスターがあると想像してください。一部のポッドはPersistentVolume(Azureディスク)を使用します。 AzureにはVMにマウントできるディスクの量に制限があり、これにより次のようなスケジューリングエラーが発生します。

Status=409 Code="OperationNotAllowed" Message="The maximum number of data disks allowed to be attached to a VM of this size is 8

ポッドはそのまま

Waiting: Container creating

ただし、一部のノードは、スケジューリングの時点でディスクが接続されているポッドの数がはるかに少なかった。このエラーが発生しないように、ノードごとにディスクが接続されたポッドの量を制限することは素晴らしいことです。私は信じている

podAntiAffinity

私は必要なものであり、同じラベルのポッドが同じノードでスケジュールすることを制限できることは知っていますが、ノードがディスクを持つポッドの最大量になるまでそれを許可する方法がわかりません。

私のインストールはAKSです。

az acs create \ --orchestrator-type=kubernetes \ --orchestrator-version 1.7.9 \ --resource-group <resource_group_here> \ --name=<name_here> \ ...

回答 1 件
  • KUBE_MAX_PD_VOLS  あなたが探しているものです。デフォルトでは、値は16です。Azureディスク。したがって、接続されているディスクの制限が同じインスタンス(16)を使用するか、望ましい値に設定することができます。 githubで宣言されている場所を確認できます

    この環境変数は、スケジューラ宣言で設定する必要があります。 /etc/kubernetes/manifests/kube-scheduler.yaml でスケジューラ宣言を見つけました 。これは、現在の外観です。 apiVersion: "v1" kind: "Pod" metadata: name: "kube-scheduler" ... spec: containers: - name: "kube-scheduler" ... env: - name: KUBE_MAX_PD_VOLS value: "8" ...

    spec.containers.env.KUBE_MAX_PD_VOLS に注意してください  設定-各ノードで8個を超えるディスクをスケジュールできないようにします。

    このように、ポッドは問題なくノード間で広がり、収まらないポッドは、収まる十分なノードが見つかるまで保留状態のままになります。

あなたの答え