🥚
初心者のためのKubernetes リソース紹介~Pod編~
Podの概念が分からない人へ
この記事の目的
Kubernetesを初めて学習する人に向けて、簡単にPodのイメージを説明してみた。
この記事を読むとざっくりと理解できます。
概念
KubernetesにおけるPodとは「Dockerコンテナを管理する最小単位」のこと。
うん。よくわからない、、。
とりあえず以下の2点を抑えてほしい。
- コンテナを置いておく空間
- kubernetesが扱える最小単位のリソース
イメージ
イメージだとこんな感じ。
Podはコンテナを置いておく空間で、1つ以上のコンテナがある。
なぜPodが最小単位なのか?
初心者がまずつまづくのはなぜPodが最小単位?なのかということ。
Podの中に入っているDockerコンテナが最小単位だと捉えてしまう人もいる。
(実際、私も最初はそう考えてしまっており、混乱しました、、。)
ただ、それは違います。なぜならDockerとKubernetesのはまったく別の世界だからです。
Kubernetesは別の世界のDockerコンテナを直接操作できません。
あくまでKubernetesが扱えるのはあくまでKubernetesのリソースつまりPodなどです。
つまりPodはKubernetesが扱える最小単位のリソースということです。
マニフェストファイル
Kubernetesはリソースをymlファイルを元に作成する。
例えば、以下のようなファイルを作成する。少し説明も加えてみた。
pod.yml
##リソース情報を定義する
##➀オブジェクトのバージョンと種類
apiVersion: v1
kind: Pod
##➁オブジェクトの情報(名前とか)
metadata:
name: debug
namespace: default ##nameの集まり
labels: ##ラベル分けのためのもの
env: study
##➂オブジェクトに適用するものを指定する
spec:
##コンテナの中身を記載(Podは1つ以上のコンテナを持っている)
containers:
- name: debug
image: centos:7
command: ##/sh -c ~ というコマンド
- "sh"
- "-c"
## 環境変数の場所を指定する
args:
- |
while true
do
sleep ${DELAY}
done
## 代入する値(環境変数)
env:
- name: "DELAY"
value: "5"
まとめ
Podは以下の2点を理解しておこう。
- コンテナを置いておく空間
- kubernetesが扱える最小単位
Discussion