google container engine を始めてみよう

31
Container Engine を始めてみよう Google Cloud Platform Sales Engineer Kiyoshi Fukuda

Upload: google-cloud-platform-japan

Post on 08-Jan-2017

1.724 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Google Container Engine を始めてみよう

Container Engine を始めてみよう

Google Cloud Platform Sales Engineer Kiyoshi Fukuda

Page 2: Google Container Engine を始めてみよう

Google Cloud Platform 2

基盤およびオペレーション

データサービス

アプリケーションサービス実行環境

Page 3: Google Container Engine を始めてみよう

Building what’s next 3

Complete Range of Compute

Page 4: Google Container Engine を始めてみよう

Building what’s next 4

Google App Engine

インフラではなくコードにフォーカス

好きな言語で開発

クリックするだけでデプロイ可能

自動的にスケールアウト

セキュリティスキャナにより脆弱性を発見

Google Cloud Platform 4

Data Services

Foundation - Infrastructure & Operations

Application Runtime Services

Page 5: Google Container Engine を始めてみよう

Building what’s next 5

Google Compute Engine

Googleインフラの上に構築された仮想マシン

柔軟なプラットフォームの構築

Best Of Bleed

GCE プリエンプティブルVMを使うと通常のVM価格の30%で利用可能

ライブマイグレーション

Data Services

Foundation - Infrastructure & Operations

Application Runtime Services

Google Cloud Platform 5

Page 6: Google Container Engine を始めてみよう

Building what’s next 6

Google Container Engine

コンテナによる革命が起こりつつある

開発者にとって :開発環境、テスト環境の構築が容易

マイクロサービスを構築するのが容易

1コマンドで容易にクラスタをアップデート可能

運用管理者にとって :Kubernetes が管理してくれる

アプリケーションのデプロイが容易

ポータビリティ

Data Services

Foundation - Infrastructure & Operations

Application Runtime Services

Google Cloud Platform 6

Page 7: Google Container Engine を始めてみよう

Copyright 2015 Google Inc

Googleでは10年間に渡り、すべてのサービスをコンテナで動かしてきた毎週20億以上のコンテナを立ち上げている

Images by Connie Zhou

Page 8: Google Container Engine を始めてみよう

コンテナ イメージ

依存性

アプリケーション コード

コンテナはアプリケーションコードとその依存性を一つの

ユニットとしてまとめる

これにより、アプリケーションとインフラを疎結合にするこ

とができる

• 伝統的なIT環境において、インフラエンジニアはアプリケーションの実

行環境を正しく整えることが重要

• コンテナはアプリケーションとその依存性がまとまっているので、例え

ば、開発環境、テスト環境、本番環境をまたいだデプロイが容易になる

• オンプレミス、プライベートクラウド、パブリッククラウド等ことなる実行

環境間の移動が容易になる

コンテナとは?

Page 9: Google Container Engine を始めてみよう

VM vs Container

Page 10: Google Container Engine を始めてみよう

軽量仮想マシンに比べて

軽量でシンプル。数十ミリ秒で起動

ポータブル様々な実行環境に対応し、

デプロイメントが容易

効率性リソース使用量が少なく、コンピュートリソースを細分化して効率的に利用可能

なぜコンテナなのか?

Page 11: Google Container Engine を始めてみよう
Page 12: Google Container Engine を始めてみよう

Copyright 2015 Google Inc

コンテナ管理の課題

Node Node

Cluster

Node

???

● 複数のノードに対するコンテナのデプロイは?

● ノード障害が発生した場合は?

● コンテナ障害が発生した場合は?

● アプリケーションのアップグレードはどうやって管理する?

Page 13: Google Container Engine を始めてみよう
Page 14: Google Container Engine を始めてみよう

Kubernetes κυβερνήτης: Greek for “pilot” or “helmsman of a ship”

the open source cluster manager from Google

Page 15: Google Container Engine を始めてみよう

CNCF(Cloud Native Computing Foundation)の発足

Page 16: Google Container Engine を始めてみよう

KubernetesMaster/Scheduler

クラスタ : 実行環境

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ノード

Page 17: Google Container Engine を始めてみよう

Log Roller

Web Server

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

KubernetesMaster/Scheduler

ポッド : デプロイ単位

コンテナ

コンテナ

ポッド

Page 18: Google Container Engine を始めてみよう

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

多数のポッドを識別するには?

Page 19: Google Container Engine を始めてみよう

labels: role: frontend

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

ラベル: オブジェクトを識別

Page 20: Google Container Engine を始めてみよう

labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

ラベル: オブジェクトを識別

Page 21: Google Container Engine を始めてみよう

FE FE FE FE

replicas: 4template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ: ポッドの実行状態を管理

Page 22: Google Container Engine を始めてみよう

FE

replicas: 1template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ: ポッドの実行状態を管理

Page 23: Google Container Engine を始めてみよう

FE FE FE

replicas: 3template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ: ポッドの実行状態を管理

Page 24: Google Container Engine を始めてみよう

id: backend-serviceport: 9000labels: role: backend stage: production

Backend Service

BE BE BE BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

サービス: エンドポイントを抽象化

FE

port: 9000

Load-Balancing

ポッドは自動配置される!

でも、FEはどうやってBEにアクセスするの?

Page 25: Google Container Engine を始めてみよう

Kubernetesのクラスタを構築する

Page 26: Google Container Engine を始めてみよう

Container EngineGoogle Cloud Platform

Page 27: Google Container Engine を始めてみよう

Container EngineGoogle Cloud Platform

Page 28: Google Container Engine を始めてみよう
Page 29: Google Container Engine を始めてみよう
Page 30: Google Container Engine を始めてみよう

ハンズオン

資料: https://goo.gl/ua5fQw

Page 31: Google Container Engine を始めてみよう