Open7
Kubernetes学習記録

Kubernetes道場と公式ドキュメントで勉強する。

Pod
k8sのデプロイの最小単位。
1つ以上のコンテナの集合と、共通のネットワークとストレージ、それらのコンテナの実行方法の設定からなる。
namespaces, cgroupなどを共有している。

Volume
データを永続化できる。コンテナやPodが削除・クラッシュしてもVolumeのデータは残る。
また、Pod内でのコンテナ間のデータ共有にも使える。
emptyDirはPodが消えると消えてしまう、残したい場合はhostPathを使う。これらは、別のサーバー間では共有されないので、実際にはgcePersistentDiskやawsElasticBlockStoreやcisやnfsを使う。

Init Container
Podのコンテナが起動する前に実行される。複数ある場合は順に実行される。
一方で、App Containerは並行して実行される。

Lifecycle
PodにはPending, Running, Succeeded, Failed, Unknownの5つのphaseがある。
コンテナの開始直後と終了直前にpostStartとpreStopというhookを挿入できる。

ReplicaSet
指定した数のPodを複製し、実行してくれる。

Deployment
ReplicaSetの状態を宣言した状態に保ってくれる。
Podのrolling update, rolloutの履歴管理、rollbackなどをdeclarativeに行ってくれる。Podを直接管理するのではなくReplicaSetを管理する。Deploymentを変更した場合は新しいReplicaSetが作成されてPodを置き換える。