こんにちは。まゆみです。
Kubernetesについての学習について、備忘記録を兼ねて記事にしていこうと思います。
今回は第1回目のKubernetesについての記事になります(前回、Kubernetesのツールの1つ『minikube』のインストール方法について書かせていただきました。)
今回の記事では、Kubernetesの大まかな概要を書いていこうと思います
では、さっそく始めていきますね。
Kubernetesでできること
KubernetesはDocker Containerの代わりになるものではなく、
Docker Containerと共に働き、主に以下のようなことをしてくれる便利なツールです。
- Containerがクラッシュした時に自動的に新しいものにしてくれる
- トラフィックが増えた時に自動的にContainerを増やしてくれる
- 複数のContainerを使っているのなら、トラフィックを均等に分配してくれる
今までDockerを使ってサービスを立ち上げてきたと思いますが、例えば
Containerの数が100くらいになって手作業でマネージメントするには限界が出てきた。
夜中の3時にトラフィックが急増するので、その時インスタンスを増やしたいんだけど。。。
と言った時に、一つづつ手作業でContainerを実行したり削除したりリスタートさせたりするのは大変だと思います。
そのような時に役に立つツールが『Kubernetes』になります
どうしてKubernetesなの?
前のセクションでKubernetesができることを書かせていただきました。
ただ、AWSを学習したことがある方なら
『それって、AWSのECSでできることやん?!』
と思われたと思います。
AWSのサービスECSも、自動化するツールの選択肢の一つとして良いと思います。
しかし、AWSのサービスではAWSのルールに従ってサービスを使わなければいけません。
ゆえに、もし違うクラウドサービスを使いたくなった時にまた一からやり直さなければいけなくなってしまいます。
そこで、Kubernetesの出番です。
Kubernetesで使われる用語
Pod
Kubernetesの構築の中で最小の単位が『pod』と呼ばれるものになります
Podがその中にContainerを抱えています。
Podの中のContainerは1つだけのことも、複数あることもあります。
Worker Node
Worker Node はどこか遠くのクラウド上にある、あなたのマシーンのようなものです。
AWSのEC2インスタンスのようなものですね。
Worker Nodeの中のPodの中にあるContainer化されたアプリケーションを実行する事ができます
ゆえに、Worker Node は最低1つ以上は必要です。(さもないとpod、つまりContainerを実行する場が無いということなので。。。)
Worker Nodeの中に、
コピーした同じpodを置くことも(アップスケーリングする場合)
または全く違うpodを置くこともできます。
Worker Node はもちろん複数使用することも可能です。
また、Worker Nodeとpodをどちらも複数利用するとき、podはWorker Nodeに均等に分配されます。
Worker Nodeにインストールする『kubelet』はWorker NodeとMaster Nodeのコミュニケーションツールになります
Master Node
Worker Node やpodをコントロールするものが、Master Node と言われます。
そのMaster Nodeのなかにインストールされる主なソフトウェアを紹介します
Scheduler
新しいpodが必要となる状況になった時、そのpodがどのWorker Nodeで作られるべきかなどを司ります。
Kube-Controller-Manager
Worker Nodeを全体的に管理する役割を持ったものです。
正しい数のpodが実行されているかなどを確かめます。
Cluster
上記のもの全てを包括したものが『Cluster』と言われるものになります
Clusterの中で、上記のコンポーネントが結びつなげられています
また、ClusterはKubernetesが用意してくれるものではなく、あなた自身が準備をしなければいけません。
Kubernetesはあなたが作ったClusterを利用するだけです。
まとめ
今回の記事はこのあたりで締めくくらせていただきます。
次回の記事からはより具体的な内容に進んで行こうと思います<(_ _)>