Cloud Onr
Cloud OnAir
Cloud OnAir
【Google Kubernetes Engine 演習】解
説を聞きながら GKE を体験しよう
2020 年 10 月 29 日 放送
Cloud OnAir
本日の演習環境
本日の演習環境
http://goo.gle/OnAir-GKE
Qwiklabs アカウント設定
http://goo.gle/ql-account
Speaker
Cloud OnAir
長谷部 光治
ソリューションズ アーキテクト
柳原 伸弥
アプリケーション
モダナイゼーション スペシャリスト
Agenda
Cloud OnAir
1
3
2
4
GKE とは?
Qwiklabs における GKE
Qwiklabs 実演
改善ポイントと参考クエスト
5 まとめ
Cloud OnAir
Cloud OnAir
GKE とは?
Cloud OnAir
Google でのワークロード
● Gmail, Web Search, Maps
● MapReduce, batch
● Colossus(ファイルシステム)
毎週、40 億 を超える
コンテナを起動している
Cloud OnAir
コンテナとは?
インフラ
ホスト OS
ハイパーバイザ
インフラ
ホスト OS
コンテナ ランタイム
コンテナ
ライブラリ/
バイナリ
アプリ
仮想サーバーモデル コンテナモデル
仮想サーバ
ゲストOS
ライブラリ/
バイナリ
ア
プ
リ
ア
プ
リ
コンテナ
ライブラリ/
バイナリ
アプリ
コンテナ
ライブラリ/
バイナリ
アプリ
仮想サーバ
ゲストOS
ライブラリ/
バイナリ
ア
プ
リ
ア
プ
リ
仮想サーバ
ゲストOS
ライブラリ/
バイナリ
ア
プ
リ
ア
プ
リ
仮想サーバーモデル コンテナモデル
Cloud OnAir
コンテナが運用負荷を低減
2004 2016
コア運用
チーム規模
ジョブの
稼働数
コア運用チームの増加に比べ
10 倍早いコンテナの増加を実現
Cloud OnAir
大量のコンテナを管理するために
2015 年 6 月
Kubernetes 1.0
リリース
2014 年 6 月
Kubernetes が
Github 上で初めてコ
ミットされる
Solaris コンテナの
Public Beta 開始
クラスタ管理の
自動化に携わる
3−4 名の Google
エンジニアにより
Borg が誕生
20182009 20152012
Google の Borg を
Kubernetes として
オープンソース化する
取り組みがスタート
現在では
cgroups として
Linux カーネルに
統合された
プロセスの
コンテナ化が
Google によって誕生
LXC がローンチされ
Linux 上のコンテナ管
理の仕組みが
完成する
2013
Docker誕生
20192003 2006 2009 2012 2015 2018 2019
Cloud OnAir
Kubernetes が実現するもの
スケジューリング
コンテナがどこで動くべきかを決定する
ライフサイクル管理、ヘルスチェック
障害が発生してもコンテナを動かし続ける
スケーリング
コンテナ数を増減させる
名前付け、ディスカバリ
自分のコンテナがどこで動いているかを見つける
負荷分散
アクセスをコンテナ間に分散する
ストレージ(ボリューム)管理
コンテナにストレージを提供する
ロギング、監視
コンテナ内で起こったことを事象をトラックする
デバッグ、調査
コンテナをアタッチし、内部を調査する
認証、認可
コンテナに対し、誰が何を行えるのかを管理する
Cloud OnAir
Kubernetes から GKE へ
Google の 10 年以上に渡るコンテナ
管理経験に基づいた、エンタープライズ
グレードの Kubernetes 環境
● フルマネージドな Kubernetes
● Google Cloud Platform が提供する
ハイパフォーマンス、信頼性が基盤
● コンテナを動かすためにチューニングされた
OS を利用しセキュリティを向上
● エンタープライズでの利用を前提
HIPAA and PCI DSS 3.2 に準拠
Cloud OnAir
Cloud OnAir
Qwiklabs における GKE
Cloud OnAir
Qwiklabs とは?
Google Cloud Platform を実際に使って演習(ハンズオン)する環境を
提供するプラットフォームです。
ご自分のレベルに合わせた演習問題を選択し、 GCP をご自分のペースで
学習できます。
ハンズオンラボは一つ一つ独立した演習になりますが、
目的別にクエストをご用意しております。
クエストには学習目標に合わせて、いくつかのハンズオンラボがセットになってい
ます。
1 つのラボは、早いものだと 10 分程度から 30 分程度で完了できます。
ラボを楽しんでいただくためにユーザーを作成いただきますが、
Qwiklabs ユーザーは GCP アカウントとは異なります。
演習で利用する GCP アカウントは演習実行中、貸出しされます。
(演習終了後は利用不可となります。)
今回、無料でこちらのハンズオンラボを楽しんでいただけますので、
お楽しみください。
Cloud OnAir
入門、基礎
● Cloud Architecture
● DevOps Essentials
● Cloud Development
● Deploying Applications
● セキュリティと
アイデンティティの基礎
あらゆるレベル、ロールをサポートするクエスト群
上級
● Deploy to Kubernetes
in Google Cloud
● Google Kubernetes Engine
Best Practices: Security
● アプリケーション開発 - Python
● アプリケーション開発 - Java
● Advanced ML: ML
Infrastructure
エキスパート
● Kubernetesソリューション
● Google Cloud Solutions I:
Scaling Your Infrastructure
● Google Cloud Solutions II:
Data and Machine Learning
● Windows on GCP
Cloud OnAir
運用担当者
● Cloud Architecture
● DevOps Essentials
● Google Cloud Solutions I:
Scaling Your Infrastructure
● Google Cloud's Operations
Suite on GKE
● Managing Cloud
Infrastructure with Terraform
あらゆるレベル、ロールをサポートするクエスト群
開発者
● Cloud Development
● Deploy to Kubernetes
in Google Cloud
● アプリケーション開発 - Python
● アプリケーション開発 - Java
● Google Cloud Solutions II:
Data and Machine Learning
セキュリティ
● セキュリティと
アイデンティティの基礎
● Google Kubernetes Engine
Best Practices: Security
● Secure Workloads in Google
Kubernetes Engine
Cloud OnAir
Cloud OnAir
Qwiklabs 実演
 モノリシック ウェブサイトを
 Google Kubernetes Engine の
 マイクロサービスに移行する
Cloud OnAir
まずはじめに:Kubernetes リソースの理解
Pod Deployment Service
Kubernetes リソースの
中で最小なもの
1 つ以上のコンテナ、
ストレージリソース、ユ
ニークな IP を持つ
Pod、Pod のセット
(ReplicaSet)をまとめて管
理するリソース
アプリケーションを
定義する場合、通常
このリソースを使う
Pod のまとまりをネッ
トワーク公開
するためのリソース
対象 Pod はラベルで
指定する
Cloud OnAir
Kubernetes リソースマッピング
L3 / 4
ロードバランサ
仮想マシン
Service
Pod
ReplicaSet
Deployment
オンプレの世界 Kubernetes の世界
運用担当者
Cloud OnAir
利用サービス(GCP ビュー)
Cloud Shell
Container
Registry
Cloud Load
Balancing
Kubernetes
Engine
Cloud
Build
Compute Engine
✓ Cloud Shell
環境を操作
✓ Cloud Build
コンテナをビルド
✓ Container Registry
コンテナを格納
✓ Kubernetes Engine
コンテナ管理
✓ Cloud Load Balancing
負荷分散
✓ Compute Engine
コンテナを稼働させる
Cloud OnAir
GKE クラスタを作成する
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から GKE
クラスタ作成コマンドを起
動
2. 3 ノード構成の GKE
クラスタが起動
Cloud OnAir
既存のモノリスをデプロイする
Kubernetes
Engine
1. Cloud Shell から Monolith サービスを
デプロイ
Monolith
Cloud OnAir
Orders をマイクロサービスに移行する - 1
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Orders の
コンテナを作成
Container
Registry
Cloud
Build
Cloud OnAir
Orders をマイクロサービスに移行する - 2
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Orders の
コンテナを作成
2. Orders サービスを GKE に
デプロイ
Container
Registry
Cloud
Build
Cloud OnAir
Orders をマイクロサービスに移行する - 3
1. Cloud Shell から Orders の
コンテナを作成
2. Orders サービスを GKE にデプロイ
Kubernetes
Engine
Monolith
Orders
Cloud OnAir
Kubernetes
Engine
Orders をマイクロサービスに移行する - 4
1. Cloud Shell から Orders の
コンテナを作成
2. Orders サービスを GKE にデプロイ
3. Monolith サービスを再構成
Monolith
Ordersサービスを
使うように
コンテナを更新
Orders
Cloud OnAir
Kubernetes
Engine
Orders をマイクロサービスに移行する - 5
1. Cloud Shell から Orders の
コンテナを作成
2. Orders サービスを GKE にデプロイ
3. Monolith サービスを再構成
4. Orders 情報は API で取得
Monolith
Orders
Cloud OnAir
Products をマイクロサービスに移行する - 1
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Products
のコンテナを作成
Container
Registry
Cloud
Build
Cloud OnAir
Products をマイクロサービスに移行する - 2
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Products
のコンテナを作成
2. Products サービスを GKE
にデプロイ
Container
Registry
Cloud
Build
Cloud OnAir
Products をマイクロサービスに移行する - 3
1. Cloud Shell から Products の
コンテナを作成
2. Products サービスを GKE にデプロイ
Kubernetes
Engine
Monolith
Orders
Products
Cloud OnAir
Kubernetes
Engine
Products をマイクロサービスに移行する - 4
1. Cloud Shell から Products の
コンテナを作成
2. Products サービスを GKE にデプロイ
3. Monolith サービスを再構成
Monolith
Productsサービスを
使うように
コンテナを更新
Orders
Products
Cloud OnAir
Kubernetes
Engine
Products をマイクロサービスに移行する - 5
1. Cloud Shell から Products の
コンテナを作成
2. Products サービスを GKE にデプロイ
3. Monolith サービスを再構成
4. Products 情報は API で取得
Monolith
Orders
Products
Cloud OnAir
Frontend をマイクロサービスに移行する - 1
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Frontend
のコンテナを作成
Container
Registry
Cloud
Build
Cloud OnAir
Frontend をマイクロサービスに移行する - 2
Cloud Shell Kubernetes
Engine
Compute Engine
1. Cloud Shell から Frontend
のコンテナを作成
2. Frontend サービスを GKE
にデプロイ
Container
Registry
Cloud
Build
Cloud OnAir
Frontend をマイクロサービスに移行する - 3
1. Cloud Shell から Frontend の
コンテナを作成
2. Frontend サービスを GKE にデプロイ
Kubernetes
Engine
Monolith
Orders
Products
Frontend
Cloud OnAir
Kubernetes
Engine
Frontend をマイクロサービスに移行する - 4
1. Cloud Shell から Frontend の
コンテナを作成
2. Frontend サービスを GKE にデプロイ
3. Monolith サービスを削除
Monolith
Monolith サービスを
削除
Orders
Products
Frontend
Cloud OnAir
Kubernetes
Engine
Frontend をマイクロサービスに移行する - 5
1. Cloud Shell から Frontend の
コンテナを作成
2. Frontend サービスを GKE にデプロイ
3. Monolith サービスを削除
4. Frontend サービスへアクセス
Orders
Products
Frontend
移行完了!!
Cloud OnAir
Cloud OnAir
改善ポイントと参考クエスト
Cloud OnAir
GCP リソース管理のコード化
課題
解決策
GKE クラスタなど GCP のリソースをコマンドで作成
Infrastructure as Code ツールで
GCP リソース管理をコード化
参考クエスト Managing Cloud Infrastructure with Terraform
Cloud OnAir
DevOps アプローチの導入
課題
解決策
デプロイプロセスを手動で実施
DevOps アプローチを導入
参考クエスト Implement DevOps in Google Cloud
Cloud OnAir
インフラを柔軟に
課題
解決策
すべてのリソースがシングル構成となっている
自由にリソースをスケーリング
参考クエスト Google Cloud Solutions I: Scaling Your Infrastructure
Cloud OnAir
Cloud OnAir
まとめ
Cloud OnAir
✓ コンテナ、GKE を使い Google と同じ開発スタイルに
✓ より良く使うためのプラクティスを Qwiklabs で吸収
さらに・・・
✓ GKE をベースにした Google のアプリケーションプラットフォーム Anthos
に乞うご期待ください!次回の放送でお話しします!!
まとめ
Google Cloud スキルバッジ獲得キャンペーンのご案内
Google Cloud スキルバッジは、
スキルの向上を証明するデジタルなバッジです。
本キャンペーンに登録してスキルバッジを獲得しましょう!
獲得した方には、さまざまな特典もございます。
詳細・お申込みはこちら
goo.gle/skillbadge
キャンペーンにお申し込みいただいた方全員
Qwiklabs 30 日間無料でご提供!
チャレンジコースにてスキルバッジを2 つ獲得された方
対象 Coursera コースを 1 か月間無料でご提供!
スキルバッジ獲得後、ハッシュタグ「#GoogleCloudスキルバッジ」をつけて
Twitter にツイートしてくださった方の中から、
抽選で 5 名様に、Google Nest Audio をプレゼント!

[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送