Open10
【Kubernetes】Kubernetes の知識地図
kubectl drain
drainはNodeを停止させる前準備として動作しているPodを別Nodeへ退去させるコマンドだ。
PodDisruptionBudget
spec.maxUnavailable : Eviction実行時にPodを無効状態にしていい最大数を指定する。絶対値か百分率で指定する。
spec.minAvailable : Eviction実行時にPodを有効状態にしておく最小数を指定する。絶対値か百分率で指定する。
spec.selector : このBudgetを適用する対象のPodを選択するLabelSelectorを指定
voluntary
PriorityClass
Kubernetes Probe
Kubernetesにはコンテナへのヘルスチェック(Probe)が用意されている。
- LivenessProbe
- ReadinessProbe
この2種類のProbeの役割について見ていこう。
preStop
前回は、Podの終了時の動作をKubernetesの各種コンポーネントの仕組みを踏まえつつ考察しました。
Deploymentのローリングアップデートを行うとPodの再起動を伴うことになりますが、このときリクエストを欠損なく処理するために、以下2つの対策が有効であることが分かりました。
Pod の LifeCycle
Affnity
AffinityはPodのスケジュールについての条件を指定をする機能だ。Affinityについては以下の3つの種類がある。
- Node Affinity
- Pod Affinity
- Pod Anti-Affinity
PodのAZ分散を実現するPod Topology Spread ConstraintsとDescheduler
合わせて読みたい
taint と toleration
ステートフルなコンテナ運用について
DB のコンテナ化
Operator を使った方が良さそう
ステートフルなワークロード
StatefulSet を使うと良さそう
nod 障害時の挙動に気をつけなくてはいけない
ボリュームに関して