Pod
1つ以上のコンテナを内包する、ワークロードの基本単位。
See also Container
スケジューリング
Node上へのPodのスケジューリング - Kubernetes
NOTE:
- Podが起動できない理由:
- OutOfMemory, OutOfCpu … Nodeのリソースが足りない
Affinity
参考:
- Kubernetes道場 18日目 - Affinity / Anti-Affinity / Taint / Tolerationについて - Toku’s Blog
- KubernetesのNode AffinityとInternal Pod Affinityを使ってPodを高度スケジューリングする - Kekeの日記
- KubernetesのNode Affinity, Inter-Pod Affinityについて - Qiita
TaintsとTolerations
Taints and Tolerations - Kubernetes
KubernetesのTaintsとTolerationsについて - Qiitaより:
Node SelectorやNode Affinityが特定のノードに特定のPodをスケジュールするための仕組みに対し、TaintsとTolerationsは特定のノードにPodをスケジュールしないための仕組み
例えば、次のコマンドでノードに対してtaintを設定する:
# taintの設定
kubectl taint nodes node1 key=value:NoSchedule
# 上のtaintを削除するコマンド
kubectl taint nodes node1 key:NoSchedule-
このtaintがつけられたノードにPodをスケジュールするには、下のいずれかのtolerationを設定する必要がある:
# ①
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"
# ②
tolerations:
- key: "key"
operator: "Exists"
effect: "NoSchedule"
ライフサイクル
See also Container#lifecycle-hooks
Podの終了
https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
参考:
Topics
CrashLoopBackOff
発生条件:
- memory limits以上を使おうとしてOOMで殺され、繰り返し再起動されるとき
- 再起動間隔はexponential backoffで延びる
参考: