🥚

初心者のためのKubernetes リソース紹介~Pod編~

2022/08/07に公開

Podの概念が分からない人へ

この記事の目的

Kubernetesを初めて学習する人に向けて、簡単にPodのイメージを説明してみた。
この記事を読むとざっくりと理解できます。

概念

KubernetesにおけるPodとは「Dockerコンテナを管理する最小単位」のこと。

うん。よくわからない、、。

とりあえず以下の2点を抑えてほしい。

  1. コンテナを置いておく空間
  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点を理解しておこう。

  1. コンテナを置いておく空間
  2. kubernetesが扱える最小単位

Discussion