2017-12-14 11 views
0

私は、k8sノード1上のk8sデプロイメント(deploy-1)からデプロイされた実行中のポッド(pod-1)を持っています。いつか、この展開にノードの親和性をパッチしたいと思います。たとえば、ターゲットノードにはラベル 'data = allowed'が必要です。kubernetesノードアフィニティー要求ポッドリスタートポッドがノードアフィニティのルールを満たしていても

マイ手順:

  1. ノード-1を最初
  2. '許可=データ' ラベルを追加
  3. パッチノードの親和性の定義展開-1をする

私の期待はそのpod-です1は既にノード親和性ルール(ステップ1)を満たしているノード1上にあるので、k8によって再スケジュールされるべきではない。しかし結果としてノード-1にまだポッド1が再作成されました。

リビングポッド/デプロイメントが新しい定義済みノード類似性ルールを満たしている場合、レクリエーションを防ぐための設定はありますか?ありがとう。

答えて

0

希望の状態が変更されたことを意味する展開に新しいラベルを追加してクラスタの状態を変更したい場合、k8sはの現在の状態===希望する状態を確認します。これは基本的な設計です。

上記の機能を利用するためには、命令的アプローチではなく宣言的アプローチを使用する必要があります。

たとえば、オペレーションをk8sクラスタで作成するのではなく、applyオペレーションを使用することをお勧めします。 今すぐk8sリソースの他のフィールドを変更または変更する場合は、依存フィールドがコンテナまたは外部IPを変更または再起動しないようにします。

私は、さらなる研究のために参考文献を追加しました。

kubectl-apply-vs-kubectl-create

object-management/

関連する問題