1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コンテナとKubernetesがわからなかった僕がやっと腑に落ちた話

1
Posted at

はじめに

クラウドやインフラの話になると、必ず出てくる コンテナKubernetes
ですが、正直に言うと僕は5年くらい「なんとなく分かった気になって、でも腑に落ちてない状態」でした。

最近ようやく「なるほど、そういうことか!」と腹落ちしたので、メモを兼ねてまとめます。
もし同じようにモヤモヤしている方がいたら、参考になれば幸いです。


コンテナとは?

アプリ本体+依存パッケージ+設定をひとまとめにした“環境ごと持ち運べる塊”

  • 「どこでも同じように動く」ようにするための仕組み
  • Dockerfile にアプリやランタイムを書き、docker build すると コンテナイメージ ができる
  • docker run すると実際に動く コンテナ になる

App Storeアプリとの違い

ここで僕が腑に落ちたのがこの比喩です。

  • App Storeのアプリ = 事前に用意された環境(iOS / Android)にセットする塊
  • コンテナ = 環境ごとまとめて持ってくる塊(Node.jsのバージョンやnpmパッケージも含めてパッケージ化)

つまり、

  • App Storeアプリ → 環境に依存する塊
  • コンテナ → 環境ごと持ち運ぶ塊

Kubernetesとは?

大量のコンテナを自動で管理・調整してくれる司令塔

  • コンテナが増えすぎても、落ちても、自動で配置・再起動してくれる
  • アクセスが増えればスケールアウト、減ればスケールイン
  • 設定ファイル(マニフェスト)に「こうなってほしい状態」を書くと、自動でその状態を維持してくれる

比喩で言うと

  • コンテナ = 弁当箱(アプリと環境がひとまとめ)
  • Kubernetes = 弁当配送センター(どこに何個届けるか自動で調整してくれる)

まとめ

  • コンテナは「アプリ+環境の引っ越しダンボール箱」
  • Kubernetesは「そのダンボールを大量に捌く司令塔」
  • App Storeアプリとの違いで考えると、「事前にある土台に載せる塊」か「土台ごと持ち運ぶ塊」か、で理解できる

おわりに

これまでは「コンテナとKubernetesはセットで語られるけどよく分からん…」状態でした。
でも「App Storeのアプリ」と比較したときに、初めて腑に落ちました。

もし同じようにモヤモヤしている人がいたら、この比喩が役に立てば嬉しいです!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?