IT用語ゼロからでも大丈夫!「なぜ必要か」から「どう動くか」まで、図解でまるごとわかる
一言で言うと「たくさんのアプリを自動で管理してくれる司令塔」です
アプリが故障しても、Kubernetes が自動で新しいアプリを起動してくれる
Kubernetes を理解するには、まず Docker(コンテナ)を知ることが大切です
「自分のPCでは動くのに本番で動かない」問題を Docker が解決する
Docker だけでは困ること、Kubernetes がどう解決するかを見てみましょう
Kubernetes は複数サーバーをまとめて自動管理してくれる
覚えることは多くないです!まずこの7つを押さえましょう
Container(お弁当箱)→ Pod(トレイ)→ Node(作業台)→ Cluster(工場全体)という入れ子構造
kubectl get pods のようにコマンドを打って、クラスターを操作します。K8s クラスターの中には「頭脳(司令塔)」と「手足(働き手)」があります
左の「頭脳」があなたの指示を受け取り、右の「手足(サーバー群)」を動かす
| 部品名 | どこにある? | 何をする?(やさしく) |
|---|---|---|
| API Server | 頭脳 | K8sへの「受付窓口」。kubectl からの命令はすべてここが受け取る |
| etcd | 頭脳 | クラスター全体の設定情報を保存する「金庫」。バックアップがとても重要 |
| Scheduler | 頭脳 | 「どのサーバーにアプリを置くか」を決める配置担当 |
| Controller Manager | 頭脳 | 「指示通りに動いているか」を常に監視して、ズレがあれば修正する番人 |
| kubelet | 各サーバー | 頭脳からの指示を受けて、そのサーバーでPodを起動・管理する係 |
| kube-proxy | 各サーバー | サーバー内のネットワーク通信を管理する係 |
「コードを書いてからユーザーに届くまで」を順に見てみましょう
④の「設計書(YAML)」を⑤でK8sに渡すと、あとは自動でアプリが起動する
外部からどうやってアプリに届くのか、図で確認しましょう
外部ユーザー → Ingress(振り分け)→ Service(受付窓口)→ Pod(アプリ)の順に届く
「そこが気になってた!」というQ&Aをまとめました
kubectl apply -f deployment.yaml というコマンドを打つだけで、アプリの配置・設定・起動をまとめてやってくれます。
docker run hello-world を実行して、コンテナを体感するkubectl apply -f pod.yaml でアプリを起動する体験をする