vagrant
docker
インフラ
kubernetes
マイクロサービス

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

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

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

概要

  • Dockerコンテナをクラスタ化した際の運用ツールの1つ
  • Googleが中心になって開発してる(Go + シェルスクリプト)
  • 自動デプロイ、スケーリング、アプリ・コンテナの運用自動化ができる
  • マイクロサービスと相性が良い
  • 管理上の基本単位はPodという
    • Volume:記憶領域を共有するコンテナの集まり
    • Container
    • IP ADress
  • 試すなら、GKE(Google Container Engine)を使うのが良さそう

↓こんな画面らしい

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

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

なぜ必要とされたのか?

  • Dockerは、ホスト内のコンテナ同士はやりとりできるが、外側とのやりとりにNATが必要
  • したがって、ホスト間の連携が煩雑になるため、容易にスケールアウトできない
  • そこで出てきたのがKubernetes

Kubernetesでできること

  • 複数台のホストから構成される実行環境を、1台の実行環境のように扱うことができる
  • 運用中のコンテナに不具合があってサービスがダウンした時に、状態変化を察知し、いい感じにしてくれる
    • 問題の発見に遅れる可能性があるかも
  • Docker/Kubernetes環境でマイクロサービス化を推進すると、様々な部品を独立してデプロイ出来るようになる

つまり

  • アプリを迅速に予定通りにデプロイする
  • 稼働中にアプリをスケールする(規模を大きくする)

構成要素

  • マスター・コンポーネント
    • クラスタの制御を待ち受けるもの
    • クラスタ全体に関わる決定を行う
  • ノード・コンポーネント
    • 全てのノードで実行される

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

参考サイト