Edited at

3分で分かった気になる、Kubernetes とは?

マイクロサービスやDockerの話になるといつも出てくるのが、Kubernetes(クーバネティス)。

奥深そうな技術ではあるが、Kubernetesとは?をあさーく簡単にまとめてみた


概要


  • Dockerコンテナをクラスタ化した際の運用ツールの1つ

  • Googleが中心になって開発してる(Go + シェルスクリプト)

  • 自動デプロイ、スケーリング、アプリ・コンテナの運用自動化ができる

  • マイクロサービスと相性が良い

  • 管理上の基本単位はPodという


    • Volume:記憶領域を共有するコンテナの集まり

    • Container

    • IP ADress



  • 試すなら、GKE(Google Kubernetes Engine)を使うのが良さそう

↓こんな画面らしい

↓8分くらいの動画。わかりやすいらしい(見てない)

よい子のためのKubernetes絵本」動画


なぜ必要とされたのか?


  • Dockerは、ホスト内のコンテナ同士はやりとりできるが、外側とのやりとりにNATが必要

  • したがって、ホスト間の連携が煩雑になるため、容易にスケールアウトできない

  • そこで出てきたのがKubernetes


Kubernetesでできること


  • 複数台のホストから構成される実行環境を、1台の実行環境のように扱うことができる

  • 運用中のコンテナに不具合があってサービスがダウンした時に、状態変化を察知し、いい感じにしてくれる


    • 問題の発見に遅れる可能性があるかも



  • Docker/Kubernetes環境でマイクロサービス化を推進すると、様々な部品を独立してデプロイ出来るようになる


つまり


  • アプリを迅速に予定通りにデプロイする

  • 稼働中にアプリをスケールする(規模を大きくする)


構成要素


  • マスター・コンポーネント


    • クラスタの制御を待ち受けるもの

    • クラスタ全体に関わる決定を行う



  • ノード・コンポーネント


    • 全てのノードで実行される



次はハンズオンをやりながら理解を深める予定


参考サイト