LoginSignup
0
0

More than 5 years have passed since last update.

【Kubernetes】Workloadsリソースについて

Posted at

概要

KubernetesのWorkloadsリソースについてメモ

Pod

k8s上の最小単位。1つ以上のコンテナのこと。

ReplicaSet

セルフヒーリングが出来る。設定したレプリカ数(Pod数)を常に維持してくれること
各nodeのリソース状況に合わせて、Podを配置してくれる。各nodeへ配置されるpod数が等しくなるとは限らない

DaemonSet

ReplicaSetの「各nodeのリソース状況に合わせて、Podを配置してくれる」のではなく、「各nodeにひとつずつPodを配置する」
レプリカ数(Pod数)の指定はできないし、1つのNodeに2つPodを配置することもできない。
ローリングアップデートも可能。
ondeleteアップデートで、マニフェスト変更時にアップデートするのではなく、podが再作成されるときに更新させることができる
具体的には死活監視など。

StatefulSet

データベースなどのステートフルなワークロードに対応するリソース
作成されるpod名のサフィックスは、数字のインデックスが付与されたものになる。そのためサフィックス前のPod名は変わらない。
Persistant Volume(永続化領域)を使っている場合には、podの再起動時に同じディスクを利用して再作成される

Deployment

マニフェストに変更があると即時、古いReplicaSetのpod数を減らしながら、新しいReplicaSetのpod数を上げてアップデートしてくれる。
(ローリングアップデート)
⇨ 新しいPodがきちんと立ち上がったか確認しながら、updateをk8sがやってくれる
⇨ Podを使用しているサービスに影響はない。つまりサービスを停止せずにアップデートができる。
⇨ 新しいReplicaSetでエラーが起きたなら、古いReplicaSetへ戻すようにロールバックをしてくれる。
ローリングアップデートをしても古いReplicaSetが削除されるわけではない。紐づくPodは削除される。
⇨ マニフェストの、spec.template配下に変更があれば自動的にローリングアップデートされる。

Job

並列でPodを実行しながら、一度限りの処理を実行させるリソースのこと。
ReplicaSetとの違いは、「起動するPodが停止することが前提」で作られている点。
そのためバッチ処理に向いている。
障害発生時にPodを新規作成するか(restartPolicy: Never)、
同一のPodを利用するか(restartPolicy: OnFailure)を指定できる。

CronJob

cronでスケジュールされたJobのこと。
正確にはJobをcron単位で管理するリソースがCronJob。
cronの設定次第ではJobを作り続けるため、Jobの同時実行に関する設定を行うことが可能。
CronJobは時刻になるとKubernetes MasterがJobを立ち上げるため、Masterがダウンしていた時の許容時間を設定することができる。
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