Kubernetes ~Workloadsリソース 基礎コマンド編~

Kubernetes ~Workloadsリソース 基礎コマンド編~

MLOpsを仕事で扱っていきたいので、その周辺の技術を学んでいくシリーズです。
本記事は、Kubernetesの2つ目の記事です。

また下記の書籍を参考にしています。
Kubernetes完全ガイド (impress top gear)
もちろんチュートリアルも見ております。
Learn Kubernetes Basics

 

Kubernetes コマンド一覧

作成コマンド

【applyコマンドとの違い】
applyは、オブジェクトが存在しない場合、新規作成してくれ、
オブジェクトが存在する場合、情報を更新してくれるか、更新がなければ何もしません
基本的には、applyを使ったほうが良いとのことです。

参考にした記事
Kubernetes: kubectl apply の動作

ステータス確認コマンド

詳細確認コマンド

describeコマンドは、KuberneteseがPodに確保した値を表示させてくれます。

削除コマンド

リソースの使用量の確認

Pod上でのコマンド実行

ログの確認

 

Kubernetesのリソース

Kubernetesが扱うリソースは5種類あります。
①Workloadsリソース
②Discovery & LBリソース
③Config & Storageリソース
④Clusterリソース
⑤Metadataリソース

全部書くのが面倒だったので、Workloadsリソースだけ記載します。

Workloadsリソース

・Pod
・ReplicationController
・ReplicaSet
・Deployment
・DaemonSet
・StatefulSet
・Job
・CronJob

 

Deployment, ReplicaSet, Pod

Pod

Workloadリソースの最小単位であり、
Pod単位でIP アドレスが割り当てられます。
Podの種類にも、サイドカーパターン、アンバサダーパターン、アダプタパターンの3種類存在します。

ReplicaSet

Podのレプリカを作成し、Podの数を維持し続けるリソースです。
Deploymentを経由して、利用するのが一般的です。

Deployment

ReplicaSetを管理し、ローリングアップデートなどの処理を実施するリソースです。

Deployment 推奨される流れ

前提として、古いReplicaSetに3つPodが存在しているとします。

1. 新しいReplicaSetを作成(このときはPod数は0)
2. 新しいReplicaSetでPod数を徐々に増やしていく
3. 古いReplicaSetを減らしていく
4. 2,3を繰り返す
5. 古いReplicaSetは削除せず、保持しておく

 

Deployment, ReplicaSet, Podの関係性

今回は、この3つだけ取り上げます。関係性は、下記のようになっています。
①DeploymntがReplicaSetをを管理
②ReplicaSetがPodを管理する

Pod ← ReplicaSet ← Deployment