kubernetesを触ってみた

36
Kubernetesを触ってみた 20PaaS勉強会 @jacopen

Upload: kazuto-kusama

Post on 01-Dec-2014

10.793 views

Category:

Technology


6 download

DESCRIPTION

Kuberenetesを触ってみたので、こんな感じでしたよとレポートします

TRANSCRIPT

Page 1: Kubernetesを触ってみた

Kubernetesを触ってみた第20回 PaaS勉強会 @jacopen

Page 2: Kubernetesを触ってみた

@jacopen Kazuto KusamaNTT Communications !Cloudn PaaSの開発・運用をやっています

Page 3: Kubernetesを触ってみた
Page 4: Kubernetesを触ってみた
Page 5: Kubernetesを触ってみた

Cloud

Page 6: Kubernetesを触ってみた

Cloud

IaaS

PaaS

SaaS

Page 7: Kubernetesを触ってみた

Cloud

IaaS

PaaS

SaaS

Page 8: Kubernetesを触ってみた

Cloud

IaaS

PaaS

SaaS

Page 9: Kubernetesを触ってみた

Cloud

IaaS

PaaS

SaaS

Page 10: Kubernetesを触ってみた

Cloud = VM?

Page 11: Kubernetesを触ってみた

Cloud = VM?

うちのサービス、全部コンテナで動いてるで

うちもや。VMとか使ってへんで

Page 12: Kubernetesを触ってみた

Docker

なんか呼んだ

か?

Page 13: Kubernetesを触ってみた

コンテナという選択肢• コンテナ技術そのものは昔からある • LinuxでもLXCがあった

• 商用UNIXの世界ではン十年前からある

Page 14: Kubernetesを触ってみた

Dockerのすごいところどや

• コンテナ技術のもつメリットに加えて・・

• 差分ディスクイメージを作ってシェアできる • Dockerfileでインフラのコード化ができる

コンテナ技術がグッと身近に。 コミュニティが進化すればするほど使いやすく。

Page 15: Kubernetesを触ってみた

運用に課題• どうやって数あるホストにコンテナを配置する?

• どうやって今稼働しているコンテナを管理する?

• 死活監視は?

Dockerだけでは運用できない

Page 16: Kubernetesを触ってみた

Kubernetes

Page 17: Kubernetesを触ってみた

KubernetesとはGoogleが公開した、コンテナ管理ツール

!

Kubernetes (koo-ber-nay'-tace) is Greek for “helmsman” of a ship. 船の舵を取る人 という意味らしい

Page 18: Kubernetesを触ってみた

Design Overview

Kubernetes is a system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications

https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md

Page 19: Kubernetesを触ってみた

まずは触ってみよう

Page 20: Kubernetesを触ってみた

DEMO

Page 21: Kubernetesを触ってみた

今回のKubernetes環境

Master

Node (Minion)

Node (Minion)

Node (Minion)

Node (Minion)

Page 22: Kubernetesを触ってみた

Demoで構築したもの

redis-masterredisslave redisslave

frontend frontend frontend

Frontend Replication Controller

Redis Slave Replication Controller

Redis Slave service Redis master service

Page 23: Kubernetesを触ってみた

Kubernetesの仕組み• Pod • Label • Replication Controller • Service

Page 24: Kubernetesを触ってみた

Pod• コンテナの集まり • 今回のデモだと1Pod 1Container

• Pod内のコンテナは、必ず同一ホストになる

• ストレージとか、IPアドレスを共有しなければいけないコンテナをまとめられる

Page 25: Kubernetesを触ってみた

Label

• Podに「ラベル」を自由に付けられる

• 環境を示すラベル(Production,

Development, Staging) • 役割を示すラベル(Frontend, Backend,

Worker, Logger) • 1つのPodに複数のラベルが付けられる

Page 26: Kubernetesを触ってみた

redis-masterredisslave redisslave

frontend frontend frontend

Pod

Label

Page 27: Kubernetesを触ってみた

Replication Controllers

• Podテンプレートから、指定された数のReplicaを作成する仕組み

• Podの監視をしていて、指定された数より多ければ減らし、少なければ減らす

Page 28: Kubernetesを触ってみた

redis-masterredisslave redisslave

frontend frontend frontend

Frontend Replication Controller

Redis Slave Replication Controller replicas:2

replicas:3

Page 29: Kubernetesを触ってみた

Service

• L3のプロキシみたいなもの

• 設定したPodにラウンドロビンでアクセスを分配する

Page 30: Kubernetesを触ってみた

redis-masterredisslave redisslave

frontend frontend frontend

Frontend Replication Controller

Redis Slave Replication Controller

Redis Slave service Redis master servicePort:10000 Port:10001

Port:6379Port:6379Port:6379

Page 31: Kubernetesを触ってみた

redis-masterredisslave redisslave

frontend frontend frontend

Frontend Replication Controller

Redis Slave Replication Controller

Redis Slave service Redis master servicePort:10000 Port:10001

Port:6379Port:6379Port:6379

Frontend service

Page 32: Kubernetesを触ってみた

自分でKubernetesを試してみる今だといろんな環境で試せる • Google Compute Engine • Vagrant • CoreOS • Microsoft Azure • Digital Ocean • OpenStack

Page 33: Kubernetesを触ってみた

環境によって構築方法は異なる • Kubernetesリポジトリの、Getting Started

Guidesを参照。

• GCEで構築はめちゃくちゃ楽

• gcloud cliが使える状態なら、構築はコマンド一発

• 対応表に入っていないIaaSでも、その上にCoreOSクラスタ構築すれば使えるんじゃないかな?

Page 34: Kubernetesを触ってみた

Kubernetes=PaaS?

Page 35: Kubernetesを触ってみた
Page 36: Kubernetesを触ってみた

今後調べたいこと• OpenShift+Kubernetes • Corekube(CoreOS+Kuberenetes

+OpenStack) • Network周り