Whimlog

文体が安定しませんが、ご了承ください。

「Kubernetes のコンテナ技術ですべてをシンプルに」を見た感想

k8s ムズイ

けっこう前から、Kubernetes に興味があり、Meetup in Tokyo #40 -Kubernetes- に行きました。しかし、 基本がまだあんまりわかってないなと思ったので、以下のビデオを見て勉強することにしました。


Next 東京:Kubernetes のコンテナ技術ですべてをシンプルに(Brian Dorsey)

Brian Dorsey (@briandorsey ) san による日本語での説明になります。 とても体系的で聴きやすく、実例を上げて解説されていて非常にわかりやすかったです。

以下メモになります。

なぜコンテナ?

  • Performance
  • Repeatability
  • Quality of Service
  • Visibility
  • Accounting
  • Portability

コンテナはあらゆるアプリケーションを抽象化できて便利

簡単なアプリで考えてみる

以下の構成で考えてみる (guestbook

考えること

  • どのホストを使う?
  • cache は?
  • プロセスに問題があったらどうする?
  • ホストに問題があったr?
  • スケーリングにどうやって対処する?
  • production と同じ環境の test 環境はどうする?

これらを k8s が解決する

k8s とは

  • Helmsman のギリシャ語が Kubernetes
  • アメリカの西海岸だと「クゥヴァネティス」って発音するよ
  • コンテナの管理をしてくれるオーケストレーター
  • Docker コンテナを実行する
  • Google, IBM, RedHat, CoreOS の人たちが中心のコミュニティ
  • Go でできた OSS だよ
  • アプリケーションを中心に考える

Desired State 望ましい状態

  • k8s が設定した状態を保持してくれる

k8s で覚えて欲しい概念

  • Pod
    • k8s の世界の atom になる概念
    • 同一ノード
    • 共有名前空間
    • エフェーメラル
      • 停止、差し替えができる
    • ソフトを動かすと pod の中に入る
    • 1つのコンテナで pod を動かす
    • static のサイトを作るアプリがある
      • pod の中でサイトジェネレータとWebサーバは疎結合で仕事に専念できる
  • Replication Controller
    • 行動、観察、diff のループが動いている
    • 望ましい状態の維持を担当
    • 現在の状態を監視している
    • 4つのノードで考える
      • 1つのノードで障害があっても他のノードに pod を作成してくれる
      • 何もないノードがあとで生まれる
    • Pager 来なくて安心!
  • Service
    • 1つのものとして振る舞うポッドの集まり = service
    • Pod間の負荷を平衡にたもつ
    • 他の service とやりとりすることで、ホストを知る必要がない
  • Labels
    • Key, Value の形式
    • 一つのクラスタに様々なラベルをつけることで整理できる

DEMO

  • configuration は json, yaml どちらでも ok
  • kubectl が k8s を操作するための cli
  • scale で scaling ができる
  • roling-update でそれぞれの pod がupdate されていく
  • 前のイメージを指定すれば、すぐに role back できて便利

GCE

  • GCE 使うと簡単に k8s 使える
  • マネージド k8s

まとめ

k8s を身近に感じることができたのがなによりよかったです。以前、ハンズオンなどを試した時の経験を照らし合わせる事で理解が進んだと思いました。Production で使えるレベルまで引上げるべく、自分でも触っていこうと思いました。