K8s 5分講座#01 Kubernetesとは?
Kubernetes 5分講座へようこそ!

コンテナすら触ったことないのに、Kubernetesでお仕事することになってしまったー!助けてください…(実話です)

それはおめでとう!Kubernetesを押さえている人はまだ日本に多いとは言えないからね。逆に言えば、替えの利かないレア人材になるチャンスと言うわけだ。

そ、それはエキスパートに一歩近づけるということですね!頑張ります!

Kubernetesとは
まずはKubernetesの成り立ちだが、Google社が自社の大規模なシステムを管理するために、コンテナオーケストレーションシステムの開発を行い、これがKubernetesのベースとなった。

Google社が起源なんですね…知らなかった。

2014年にはオープンソースプロジェクトとして発表され、現在はCNCF(Cloud Native Computing Foundation)によって管理されている。

ソースコードを一般公開してみんなで良くしていこうゼ!にしたんですね。

今やコンテナ・オーケストレーション・テクノロジーの中で最も人気があり、最も優れたものの1つと言えるだろう。そんなKubernetesを理解するには2つのことを押さえておく必要がある。

Kubernetesの重要なキーワード2つ…?

コンテナとオーケストレーションだ。この2つの用語に慣れればKubernetesのチカラを理解できるだろう。

いや、まんまやないか~い!

コンテナとは?
コンテナとは何かを見ていこう。ここでは人気のあるコンテナ技術であるDockerを例に説明していく。まず、Dockerの仕組みを理解するために、OSの基本概念を再確認しておこう。

OSは全て、OSカーネルとディストリビューション(ディストロ)の2つで構成されている。

なぜか美味しいフライドチキンが食べたくなってきた。。

Linux、Ubuntu、CentOSなど様々なOSがあるが、これらのOSカーネルは共通してLinuxであり、HWとのやり取りを担当している。

あぁそっちのカーネルさんですね。もちろん分かってましたよ!

各OSを独自のものにしているのはディストリビューションで、UI、ドライバ、コンパイラ、ファイルマネージャ、開発者ツールなどで構成される。


”Linux OS”というのは、OSカーネルとディストリビューションを含めたものを指すのですか?

その通り。Linux OSは、LinuxカーネルとLinuxディストリビューションを含むものを示す。

やった!正解!

同様に、UbuntuやRHEL(Red Hat Enterprise Linux)は、Linuxカーネルに加えて独自ディストリビューションとしてソフトウェア、ツール等を含めたもののことを指すんだ。

Dockerは、同じカーネルをベースにしている限り、その上でどんなOSも動かすことができる。

例えばDockerがインストールされたUbuntu OS上で、Cent OSのような他のディストリビューションをベースにしたコンテナを実行できるということですか?

その通り。各DockerコンテナにはOS独自のディストリビューションがあり、DockerはインストールされたホストのOSカーネルを利用する。

なるほど。OSカーネル部分は共通だからインストールされたホストのカーネルを使うんですね。同じカーネルじゃない場合というのはどういうケースですか?

先ほどの例で言えば、Windowsベースのコンテナだと動作しない。


みんな大好きWindowsが…

Linux OSを搭載したDockerホスト上では、OSカーネルはLinuxカーネルを用いるので、シェアできないのだよ。

Dockerがあればその他のレイヤは何でもOK!と言うわけではないんですね。

ただこれはあまりデメリットにはならない。なぜならDockerは1つのHW上で異なるOSやカーネルを複数実行することを意図していないんだ。

この辺はコンテナと仮想マシンと違う部分ということですね。勉強になりました!

- Kuberentes理解のポイントは2つ!コンテナとオーケストレーションだ!(今日はコンテナ編)
- OSは共通のOSカーネル+独自のディストリビューションで構成
- 同じOSカーネルベースならば、Docker上で他のディストリビューションベースのコンテナが起動できる
ところでKubernetesって、K8sって書かれることがあると思うんですが、何でですか?クバネティスだから、バ!が8なんですかね?

イヤイヤ、8をハと読むのは日本だけだよね。これは英語独特のおシャレな略語なのだよ。Kとsの間にある文字数が8だから、K8sなんだ。

英語の略称はステキですね!もし日本発だったらクバとか、クバネになりそう。。

