0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【kubernetes】drain/cordonとtaint/toleration

Posted at

メモ

drain/cordon

ノード再起動や一時的なメンテナンス用

drain = 指定したノードからpodを退避する
cordon = 指定したノードへのスケジューリングを無効にする

kubectl drain host03 --ignore-daemonsets --delete-local-data --force

--ignore-daemonsets: DaemonSet で管理されている Pod は退避の対象外
--delete-local-data: ノード上のローカルストレージを使用している Pod を強制的に削除
--force: 静的 Pod を強制的に削除

drainすると自動でcordonも設定される

#設定
kubectl cordon host03

#解除
kubectl uncordon host03

ノードにSchedulingDisabledというステータスがつく
ノード上の既存のPodはそのまま継続して実行されるが、それ以上新しいPodがスケジュールされることはない

taint/toleration

ノードの役割管理、特定の用途に対するノードの使用制限用途

taint = ノードにカスタムラベルを付与し、特定の条件を満たさない場合にPodのスケジュールを制限toleration = Pod に toleration を設定することで選択的にそのノードにスケジュールする

#設定
kubectl taint nodes host03 key=value:NoSchedule

#解除
kubectl taint nodes host03 key-

ノードにtaint付与
NoSchedule: このテイントを持つノードにPodをスケジュールできない
PreferNoSchedule: なるべくこのノードにPodをスケジュールしないようにする
NoExecute: すでにノード上で動作しているPodも追い出し、再配置

podにtoleration設定

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: nginx
  tolerations:
  - key: "key"
    operator: "Equal"
    value: "value"
    effect: "NoSchedule"

柔軟なスケジューリング制御が可能

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?