インフラエンジニアのためのKubernetesの基本


Kubernetesって何?をなんとなく理解するために、Kubernetesの動作に焦点を当てて、概要をまとめてみました。

Kubernetesを一言でいうと、

業界標準のOSSのコンテナオーケストレータです。

コンテナ


Kubernetesの理解の為にはコンテナについて知っておく必要があります。
コンテナで何ができるか知ってから、コンテナオーケストレータ(Kubernetes)で何ができるか学びましょう!

コンテナを一言でいうと、

専用のOS上で動いているような分離状態を作り出した、OS上のプロセスです。

このコンテナ上に、開発環境やアプリケーション実行環境、サービスなどを詰め込んで、どこでも実行することができます。

コンテナを動作させる一連の流れ

では実際にコンテナを動作させる一連の流れを見てみましょう!

まずはコンテナ作ってー!とコンテナ係にお願いします。

このコンテナを扱う係の事をコンテナランタイムと言います。

実際には高位ランタイムと中位ランタイム(CRI)と低位ランタイム(OCI)が動作を分担していますが、ここではシンプルに「ランタイム」でまとめて解説します。

よく聞くDockerというのもコンテナランタイムの名前です。
Dockerとはコンテナの事ではなく、コンテナを扱うためのプログラムのことを指すんですね。

コンテナ作成をお願いされたランタイム君は、コンテナの素を探しに展示場に行きます。

このコンテナの素のことをコンテナイメージ、展示場のことをレジストリ(DockerHubなど)と言います。厳密にはレジストリとリポジトリがありますが、ここではシンプルに概念だけつかんでいただけたらと思います。

そしてコンテナイメージを持って帰ってきてコンテナを実行します。

 

もちろんレジストリに無いコンテナイメージも、設計書があれば作成することができます。

この設計書のことをdockerfileと言います。

実際のdockerfileの例です。

FROM centos:7
RUN yum install -y java
RUN touch /tmp/test.txt     # 変更箇所
ADD