8.8K Views
November 28, 24
スライド概要
11/28~11/29に開催された「CloudNative Days Winter 2024」 の発表資料です
#CNDW2024
Kubernetesを 初めて触った時に混乱した PDBやStatefulSet 今なら5分で明快に 説明できると思うんだ びきニキ @BkNkbot 2024.11.28 CloudNative Days Winter 2024
# お前誰よ びきニキ @BkNkbot 📦 サイボウズ株式会社 🐈⬛ クラウド基盤本部 PDX(Platform Developer eXperience) 🐈⬛ 福岡在住の新卒1年目 🐈⬛ 最近はGitHub Actionsをひたすら書いている
7月
チーム配属後初のタスク
アップデートなどの影響で 突然Podから追い出される v 可能性を下げる取り組みやろう 弊チームの人
v よし、やります!
v 📃
PDB…? Drain…? v Deployment …? StatefulSet …? サイドカーコンテナ…?
v 🤯
ドキュメントを読むが Kubernetesの用語に v 打ちのめされる私
何がそもそも問題で これがあると何が嬉しくて v どう影響するんだ…?
今なら5分で説明できる
※ なおここまで1分
# StatefulSetとは? 💡 Podと永続ボリュームのセット 💡 通常のDeploymentやReplicaSetは、 Podが使い捨てで動的に生成される 💡 StatefulSetはPodのデータ保持ができる 💡PodのIDやストレージを一意で固定する
# StatefulSetのうれしい特徴 Pod識別が可能: 一意の名前が付与される 再スケジュールされても、同じ名前でPodを再作成 順序を保証: Podの起動・削除が順序立てて行われる 永続的なデータの保持: Podが削除されてもデータは失われない
# StatefulSetとは?
# StatefulSetとは? https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
# StatefulSetとは? https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
# StatefulSetとは?
# StatefulSetとは?
# StatefulSetとは?
# StatefulSetとは?
# StatefulSetのできること、できないこと 🙆 Podの順序や状態の管理ができる
# StatefulSetのできること、できないこと 🙆 Podの順序や状態の管理ができる 🖐 稼働しているPod数を保証できない
# StatefulSetのできること、できないこと 🙆 Podの順序や状態の管理ができる 🖐 稼働しているPod数を保証できない 🤔 StatefulSetだけでは稼働に必要な 最低限のPod数が維持できないので サービスがダウンする可能性がある
# PDB(Pod Disruption Budget)とは? 🪣 Podの可用性を管理するための仕組み 🪣 最小限稼働すべきPodの数 or 割合を指定し、 アプリケーションの可用性を確保
# PDB(Pod Disruption Budget)とは? 🪣 Podの可用性を管理するための仕組み 🪣 最小限稼働すべきPodの数 or 割合を指定し、 アプリケーションの可用性を確保 ❤ メンテナンスやアップデートといった 「計画的な中断」が発生した際に 同時停止するPodの数を制限できて嬉しい
# PDB(Pod Disruption Budget)とは? 🪣 Podの可用性を管理するための仕組み 🪣 最小限稼働すべきPodの数 or 割合を指定し、 アプリケーションの可用性を確保 ❤ メンテナンスやアップデートといった 「計画的な中断」が発生した際に 同時停止するPodの数を制限できて嬉しい
# 「計画的な中断」って? 🤯 Involuntary disruptions: ハードウェアの故障・リソース不足・ カーネルパニックなど回避できないもの ♻ Voluntary disruptions: 修理やアップグレードのためのPod移動 事前に計画されている更新、削除、再起動
# 「計画的な中断」って? 🤯 Involuntary disruptions: ハードウェアの故障・リソース不足・ PDBが関与できる中断 カーネルパニックなど回避できないもの ♻ Voluntary disruptions: 修理やアップグレードのためのPod移動 事前に計画されている更新、削除、再起動
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# 実際の使用例 ※ maxUnavailable(利用不可能となる最大のPod 数)でも指定可能 個数だけでなくパーセントで指定することもできる
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# PDB(Pod Disruption Budget)とは? 図解
# まとめ ❤ StatefulSet: Podと永続ボリュームのセット → 識別できる・データが残る・起動順序保証 ❤ PDB: 中断する数を保証 → 事前計画の更新、削除、再起動で影響を出さない
# 何が私の混乱・躓きポイントだったのか 🤯 そもそも:基本概念を正しく理解していなかった… 🤯 単語の関係性、位置関係が不明瞭 🤯 似ている概念と理解がゴチャゴチャになる → ReplicaSet, Deployment, DaemonSet など 🤯 手を動かして理解ではなく、 説明だけで理解し、そのあと手を動かそうとしていた
# → 関係性、違いを意識して学ぶ 🤯 そもそも:基本概念を正しく理解していなかった… 🤯 単語の関係性、位置関係が不明瞭 🤯 似ている概念と理解がゴチャゴチャになる → ReplicaSet, Deployment, DaemonSet など 🤯 手を動かして理解ではなく、 説明だけで理解し、そのあと手を動かそうとしていた
# LT作成でわかったこと 🧐 関連用語との「違い」を意識すると良い 🧐 最初は似たようなものに見えていた
# LT作成でわかったこと 🧐 関連用語との「違い」を意識すると良い 🧐 最初は似たようなものに見えていた 💜 私の場合は「図で理解するタイプ」かもしれない 💜 関係性がわからず躓いた →「プレマップ&ポストマップ」で関係を明確に
# まだまだ勉強中 よければ「自分なりの」 勉強のやりかたを 教えてください〜〜〜!!
# まだまだ勉強中 よければ「自分なりの」 勉強のやりかたを 教えてください〜〜〜!! おわり