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
- Replication Controller
- 行動、観察、diff のループが動いている
- 望ましい状態の維持を担当
- 現在の状態を監視している
- 4つのノードで考える
- 1つのノードで障害があっても他のノードに pod を作成してくれる
- 何もないノードがあとで生まれる
- Pager 来なくて安心!
- Service
- 1つのものとして振る舞うポッドの集まり = service
- Pod間の負荷を平衡にたもつ
- 他の service とやりとりすることで、ホストを知る必要がない
- Labels
DEMO
- configuration は json, yaml どちらでも ok
- kubectl が k8s を操作するための cli
- scale で scaling ができる
- roling-update でそれぞれの pod がupdate されていく
- 前のイメージを指定すれば、すぐに role back できて便利
GCE
まとめ
k8s を身近に感じることができたのがなによりよかったです。以前、ハンズオンなどを試した時の経験を照らし合わせる事で理解が進んだと思いました。Production で使えるレベルまで引上げるべく、自分でも触っていこうと思いました。