Recommended
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
PDF
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
PDF
Flutter移行の苦労と、乗り越えた先に得られたもの
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
PPTX
JAZUG12周年 俺の Azure Cosmos DB
PDF
What’s new in cloud run 2021 後期
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
Microsoft Azure Overview - Japanses version
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
PDF
Google Cloud のネットワークとロードバランサ
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PDF
ドメイン駆動設計のための Spring の上手な使い方
PDF
PDF
オープンソースのAPIゲートウェイ Kong ご紹介
PDF
3分でわかるAzureでのService Principal
PDF
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
PPTX
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
GCPで実現するクラウドネイティブアプリケーション
PPTX
やっぱコンテナ好きやねん Serverless Meet Up #02.pptx
More Related Content
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
PDF
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
PDF
Flutter移行の苦労と、乗り越えた先に得られたもの
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
What's hot
PPTX
JAZUG12周年 俺の Azure Cosmos DB
PDF
What’s new in cloud run 2021 後期
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
Microsoft Azure Overview - Japanses version
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
PDF
Google Cloud のネットワークとロードバランサ
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PDF
ドメイン駆動設計のための Spring の上手な使い方
PDF
PDF
オープンソースのAPIゲートウェイ Kong ご紹介
PDF
3分でわかるAzureでのService Principal
PDF
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
PPTX
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
Similar to [External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
GCPで実現するクラウドネイティブアプリケーション
PPTX
やっぱコンテナ好きやねん Serverless Meet Up #02.pptx
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
20221105_GCPUG 女子会 Kubernets 編.pdf
PDF
Infra: Kubernetes and GKE, Network
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
PDF
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
PPTX
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
PDF
【日本語版】Styler: Our Journey to GCP
PDF
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
PDF
[GKE & Spanner 勉強会] GKE 入門
PPTX
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
PDF
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
PDF
GKE のアプリデプロイは Spinnaker に任せて!
PDF
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
PDF
PPTX
PDF
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
PDF
Wordpress案件にgkeを採用してみた(短縮版)
PDF
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
More from Google Cloud Platform - Japan
PDF
ServerlessDays Tokyo 2022 Virtual.pdf
PDF
Google Cloud でアプリケーションを動かす.pdf
PDF
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
PDF
PDF
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
PDF
[Cloud OnAir] 【実演】Google Cloud VMware Engine と VMware ソリューションを組み合わせたハイブリッド環境の...
PDF
[Cloud OnAir] Google Workspace でできる データ分析と業務自動化のご紹介 2020年12月3日 放送
PDF
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
PDF
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
PDF
[Cloud OnAir] 事例紹介: 株式会社オープンハウス 〜Google サービスを活用したオープンハウスの AI の取り組み〜 2020年11月1...
PDF
[Cloud OnAir] 【Anthos 演習】 解説を聞きながら Anthos を体験しよう 2020年11月5日 放送
PDF
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
PDF
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
PDF
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
PDF
『MAGELLAN BLOCKS』を使って BigQuery を使い倒す!| Google Cloud INSIDE Games & Apps: Online
PDF
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
PDF
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
PDF
[Cloud OnAir] Talks by DevRel Vol.2 セキュリティ 2020年8月6日 放送
PDF
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
PDF
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
Recently uploaded
PDF
歴史好きのスクラム話 JBUG名古屋#5 AI時代のデータドリブンなプロジェクト管理
PDF
手軽に広範囲でプライバシーを守りながら人数カウントできる ~ LoRaWAN AI人流カウンター PF52 日本語カタログ
PDF
論文紹介:Simultaneous Detection and Interaction Reasoning for Object-Centric Acti...
PDF
LoRaWAN小売業DXソリューション ~天候データと人流カウンターを利用して売り上げアップに貢献!
PDF
論文紹介:"MM-Tracker: Motion Mamba for UAV-platform Multiple Object Tracking", "M...
PDF
How We Operated Ticket-Driven Development in JIRA.pdf
PDF
論文紹介:"Reflexion: language agents with verbal reinforcement learning", "MA-LMM...
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南 1. 2. Proprietary + Confidential
● GCE でアプリケーションを本番運用していて、そろそろコンテナへ移行したい
● Docker や Kubernetes のことは何となく分かっている
● Google Cloud 上でコンテナに移行した時に、何を考慮しないといけないのか
ざっくり知りたい
本セッションが想定している聞き手
3. 4. 5. 6. Proprietary + Confidential
" コンテナとは、アプリケーション コードに、
ソフトウェア サービスの実行に必要な特定バージョンの
プログラミング言語ランタイムやライブラリなどの
依存関係を加えた軽量のパッケージを指します。 "
https://cloud.google.com/learn/what-are-containers より
コンテナとは?
コンテナ
依存ファイル群
アプリケーションコード
プログラミング言語ランタイム
7. Proprietary + Confidential
仮想マシン とコンテナ〜仕組みの違い
仮想マシン コンテナ
ゲスト OS
ホスト OS
ハードウェア ハードウェア
ハイパーバイザー
コンテナランタイム
依存ファイル群
アプリケーションコード
プログラミング言語ランタイ
ム
依存ファイル群
アプリケーションコード
プログラミング言語ランタイ
ム
仮想マシン
● ハードウェアレベルで仮想化
● ホストマシンと独立した OS を持つ
コンテナ
● OS レベルでの仮想化
● ホスト OS のカーネルを利用
8. Proprietary + Confidential
仮想マシン とコンテナ〜開発者目線での違い
比較観点 仮想マシン コンテナ
イメージ形式 QCOW2, QED, RAW, VDI, VHD, VMDK Docker v2/v1, OCI
イメージサイズ 大きめ (GB単位) 小さめ (MB単位)
起動時間 遅め (分単位) 早め (秒単位)
ローカル開発環境 Vagrant Docker / Minikube
環境設定 Ansible / Chef / Puppet Dockerfile
イメージ作成 Packer Docker
デプロイ Terraform / Deployment Manager /
gcloud
kubectl / gcloud
9. 10. 11. 12. 13. 14. 15. Proprietary + Confidential
Google Cloud 上でコンテナをホストする際の"主な"選択肢
概要 Kubernetes のマネージドサービス Kubernetes のマネージドサービス コンテナをサーバーレスに利用可能
コンテナの
マシンスペック
特に制限なし
(GCE の仕様に準拠)
最大 28 vCPU / 80 GiB RAM 最大 4 vCPU / 16 GB RAM
永続 Disk なし
互換性のあるOSS Kubernetes Kubernetes Knative
インフラ抽象度 低 中 高
費用 Node (GCE の 仮想マシン) の
インスタンス時間に応じた
従量課金とクラスタ管理手数料
Pod のインスタンス時間に
応じた従量課金と
クラスタ管理手数料
リクエスト処理時間とリクエスト数に応じ
た従量課金
もしくは、コンテナインスタンス
時間に応じた従量課金
GKE Standard GKE Autopilot Cloud Run (managed)
16. Proprietary + Confidential
GKE を選択する場合
● 大規模なマイクロサービス
● カーネルレベルのパフォーマンス・チューニング
● 独自メトリクスを使ったスケーリング
● K8s や CNCF のエコシステムを活用したい
● K8s に習熟したインフラ人員がいる、
もしくはこれから揃える
GKE と Cloud Run どちらを選択するか?
Cloud Run を選択する場合
● とにかくスモールスタートしたい
● パフォーマンスとかスケーリングとかは
Cloud Run にお任せ
● アプリ開発者中心の小規模チーム
● K8s に習熟した専門インフラチームがいない、
これから揃える予定もない
GKE Autopilot の使い所は?
K8s のマネージドサービスでありながら、GKE Standard よりシンプルに運用出来るのが強み。
K8s にチャレンジしたいが、K8s のクラスタ設計や運用にリソースを多く割けない場合や、
パフォーマンス・チューニング、高速なスケーリングなどが必要ない場合におすすめ!!
17. Proprietary + Confidential
GKE の世界観
OSS な抽象化
されたインフラ
GKE は Google Cloud 上に展開された別のプラットフォーム
GCE の世界観
プロプラなインフラ
GCLB GCE PD Filestore
mapping mapping mapping
Reconciliation loop による状態維持
宣言型 モデルの API
18. Proprietary + Confidential
Kubernetes では マニフェストという設定ファイルを使う。
従来の命令型 API と違い処理(How)を書くのではなく、
何を達成したいか(What)だけを書く
利用者はコンテナを利用するための
細かいインフラ周りの処理を把握する必要はない。
Kubernetes はマニフェストに書かれた状態を
常に維持しようとする( Reconciliation loop)ため、
人の手を介さずともシステムの健常な状態を維持できる。
(e.g. オートヒーリング )
宣言型 モデル と Reconciliation loop
あるべき状態
現在の状態
マニフェストで定義
K8s のクラスタでの
Live の状態
19. Proprietary + Confidential
GKE
1. コードを書く
2. Dockerfile 作成(省略可能※後述)
3. $ docker build
4. $ docker push
5. $gcloud container clusters create ~
6. $ kubectl apply -f deployment.yml
7. $ kubectl apply -f service.yaml
8. $ kubectl apply -f hautoscal.yaml
Cloud Run
1. コードを書く
2. Dockerfile 作成(省略可能※後述)
3. $ docker build
4. $ docker push
5. $ gcloud run deploy..
サービス公開までの手数(例)
20. 21. 22. Proprietary + Confidential
GCE で運用する Web アプリケーション(例)
GCE + PD
for Web Application server
(e.g. Nginx && gunicorn && Flask)
Cloud SQL
for dynamic data
(e.g. MySQL)
External HTTP
(S) LB
Cloud Storage
for static contents
Cloud CDN
IAP
for user auth
/static/*
/*
Client
23. 24. 25. Proprietary + Confidential
仮想マシンの ローカルストレージで扱うデータが
ある場合、コンテナ化した場合にどこで扱うかを
検討する。
GKE の場合
● GCE の PD
● Cloud Filestore
● GCS
Cloud Run の場合
● Cloud Filestore
● GCS
ローカルストレージの利用有無を確認する
機能 D
例えばユーザーがアップロードした
ファイルをローカルストレージ
に保管していたとする
/var/hoge/application-data/fuga
26. 27. Proprietary + Confidential
GKE に移行した Web アプリケーション構成(例)
GKE
for Web Application server
Cloud SQL
for dynamic data
(e.g. MySQL)
External HTTP
(S) LB
Cloud Storage
for static contents
Cloud CDN
IAP
for user auth
Cloud Filestore
for Upload files
Client
28. Proprietary + Confidential
GKE に移行した Web アプリケーション構成(例)K8s リソース版
サービスA
サービスB
サービスC
サービスD
GCS 用 Proxy
フロントエンド
BackendConfig
for IAP && Cloud CDN
サービス毎のDB
GCS は Ingress の BE に設定
不可のため、GKE の Pod で
Proxy させる
Web page をレンダリングする
フロントエンドと Business logic
を持つAPI サービスに分離
Upload Files 用に
Cloud Filestore を
利用(RWX)
29. Proprietary + Confidential
● GKE の Node(コンテナが動くところ)は GCE の仮想マシンを使うため、
GCE のアーキテクチャと大枠は変わらない。
● GKE への移行メリット(宣言型 API / Reconcilication Loop)を最大限享受する意味で、
K8s の API でなるべく運用を完結できるよう設計する。
● ただし、K8s API によって Wrap されたことにより、Google Cloud のサービスが
本来備えていながら、利用できない機能もあることに注意が必要。
GKE アーキテクチャ設計のポイント
30. Proprietary + Confidential
Cloud Run に移行した Web アプリケーション構成(例)
フロントエンド
External HTTP
(S) LB
サービス毎のDB
サービスA
サービスB
サービスC
サービスD
フロントエンドのCloud
Run は Serverless
NEG を
利用し LB の下に。
フロントエンドと
各サービス間はIAM 認証を
利用しセキュアに。
Cloud CDN
IAP
for user auth
Cloud Run 2nd gen
execution environment
を利用しNFS マウント
LB の Backend とし
て Bucket を
設定
Client
31. Proprietary + Confidential
● Cloud Run 単体でも外部公開は可能だが、 IAP / CDN / GCS との連携を行うため、
Serverless NEG を利用し、HTTP(S)LB と連携させる。
● Cloud Run は VPC 内で動作しないため、 Cloud SQL との接続は、以下のいずれかの方法を使い実現
する。Cloud SQL Auth Proxy を利用する方がシンプルでおすすめ。
○ Cloud SQL Auth Proxy
○ Serverless VPC Access Connector
● Cloud Run へ Cloud Filestore を NFS マウントするためには、 Cloud Run の 2nd gen
execution environment が必要だが、まだ Preview のため注意が必要。
Cloud Run アーキテクチャ設計のポイント
32. 33. Proprietary + Confidential
1. 段階的な移行(ストラングラーパターン亜種)
○ 機能ごとに段階的に新環境に移行を行う。
○ 一括移行と比較しリスク低、現実的な方式
2. 一括移行
○ 新環境を併設し、旧環境から DNS 切り替えによる一括の移行を行う。
○ 環境間でのデータの一貫性を担保するのが難しい。 DB を分割せず、
旧 DB を継続利用する等の前提があれば難易度は下がる。
環境毎にやり方はたくさん ...
実際の移行方式
34. Proprietary + Confidential
段階的な移行(ストラングラーパターンの亜種)のイメージ
2. サービスA を Cloud Run
へ移行、GCE は サービスA
の API を呼び、その結果を元
に Web page の
レンダリングを行う。
1. 元の構成 3. サービスB を Cloud Run
へ移行。移行前の機能は
そのまま旧DB を利用。
4. 同様の手順で
サービスC / D を
Cloud Run へ移行。
5. GCE に残っていたHTTP
Handler / Web page
レンダリングを行う
フロントエンド部分をCloud
Run へ移行。
/static/* /* /static/* /* /static/* /* /static/* /* /static/* /*
35. 36. 37. 38. 39. 40. Proprietary + Confidential
CI/CD のフロー(例)
git repo
trigger gcloud compute ssh….
kubectl apply -f ***.yaml
gcloud run deploy….
Source の Build&&Test&& コンテナ
イメージのビルド、Artifact Registry への Push
Source の Build&&Test、成果物のArtifact
Registry への Push(Option)
Source の Build&&Test&& コンテナ
イメージのビルド、Artifact Registry への Push
GCE は現用の仮想マシン
上でファイルの入れ替えを
行ってプロセスを
リスタート
GKE/Cloud Run は現用の
コンテナを新しい
コンテナに入れ替える
41. Proprietary + Confidential
同じところ
● アプリケーションを動作させるための 環境設定を定義するファイルが必要
○ 仮想マシン = Ansible Playbook
○ コンテナ = Dockerfile
違うところ
● 仮想マシンは実際に欲しい構成のインスタンスを作って、そこからイメージ作成。
コンテナは設定ファイル( Dockerfile)からイメージを直接作成。
● コンテナの方がより Immutable( 但し Spinnaker のような 3P ツールを使えば、
仮想マシンでもコンテナと似たようなことが出来る)
仮想マシンとコンテナ、ワークフロー差分
42. Proprietary + Confidential
[参考] Buildpacks
"Google Cloud Platform/buildpacks: Builders and buildpacks designed to run on Google Cloud's container platforms"
https://github.com/GoogleCloudPlatform/buildpacks
$ ls
index.js package.json
## Cloud Build で利用
$ gcloud builds submit --pack image=gcr.io/my-project/my-app
## pack コマンドを通じて利用
$ pack build my-app --builder gcr.io/buildpacks/builder:v1
## Cloud Run のデプロイ時に利用
$ gcloud run deploy SERVICE_NAME --source .
指定したディレクトリ以下を解析し、
Dockerfile なしに適切なコンテナへビルドする。
サポート言語
● Go 1.10+
● Node.js 10+
● Python 3.7+
● Java 8, 11
● .NET Core 3.1+
43. 44. Proprietary + Confidential
Cloud Logging を利用。
● GCE
○ Ops エージェント をインストールして利用。
○ Host 自身の Syslog、任意のログファイルから取得可能。
さらに Host 内で TCP レシーバーを設定可能。
● GKE
○ ロギングエージェントが Node にデフォルトでインストールされており、
特に設定を行わなくてもコンテナの Stdout, Stderr がデフォルトで収集される。
● Cloud Run
○ 特に設定を行わなくてもコンテナの Stdout, Stderr がデフォルトで収集される。
ロギング
45. Proprietary + Confidential
構造化ログの活用
従来のようにログをファイルへ出力するのではなく、 GKE /
Cloud Run では Stdout, Stderr に対してログを
出力するのがオススメ。
構造化ログを利用することで、
検索しやすい形式でログを出力することが可能。
特殊フィールド (例: severity )は jsonPayload から
削除され、対応フィールドに書き込まれる。
# Build structured log messages as an object.
global_log_fields = {}
# Complete a structured log entry.
entry = dict(
severity="NOTICE",
message="This is the default display field.",
component="arbitrary-property",
**global_log_fields,
)
print(json.dumps(entry))
46. Proprietary + Confidential
Cloud Monitoring を利用。
● GCE
○ Ops エージェントをインストールすることで CPU やメモリ、ディスクなどのメトリクスが収集され
る。
● GKE
○ メトリクス エージェントが Node にデフォルトでインストールされており、
特に設定を行わなくても Node やコンテナのシステムメトリクスが収集される。
● Cloud Run
○ 特に設定を行わなくても リクエスト数や CPU 使用率など コンテナのシステムメトリクスが収集さ
れる。
モニタリング
47. 48. Proprietary + Confidential
Kubernetes は〜3 ヶ月毎に最新のバージョンをリリース、パッチは〜1 ヶ月毎にリリース
GKE は Kubernetes のリリースに加えてセキュリティおよびバグ修正を提供
Control Plane バージョン
Kubernetes の Control Plane で
使われるバージョン。 Kubernetes
クラスタで使われる大半の
ソフトウェアのバージョンを指す。
Node バージョン
Kubernetes の Nodeで使われる
バージョン。主に OS イメージおよび
Kubelet のバージョンを指す。
GKE バージョンアップグレード
GKE のバージョン ポリシー
● Node は Control Plane よりも新しいバージョンは使えない
● Node は Control Plane から 2 マイナーバージョン古いものまで利用可能
49. 50. Proprietary + Confidential
アップグレードのパターン
1. リリースチャネルを指定したクラスタ
● 各チャネル毎に設定された頻度に従い、Control Plane も Node も自動アップグレードされる
● 自動アップグレードは無効化できない(リリースチャネルから外すことは可能)
● 自動アップグレードを待たずに手動アップグレードすることも可能
2. 静的にバージョンを指定したクラスタ
● Control Plane
○ 自動アップグレードされる(無効化不可)
● Node
○ デフォルトは自動アップグレードが有効(無効化可能)
○ 自動アップグレードを無効にしてる場合は、ユーザーによる手動アップグレードが必要
51. Proprietary + Confidential
メンテナンスの時間枠と除外
● メンテナンス時間枠( Maintenance Windows)
○ 自動メンテナンスの実行を許可する定期的な時間枠
■ 32 日周期で最低 48 時間の時間枠
■ 各時間枠は 最低 4 時間以上の連続した時間
● メンテナンス除外(Maintenance Exclusion)
○ 自動メンテナンスの実行を禁止する定期的な時間枠
○ 1 クラスタ 3 つまで
52. Node pool A( 計 4 Nodes)
> max_surge_upgrade: 2
> max_unavailable_upgrade: 0
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
Pod Pod
v1.19.15
v1.20.10
v1.20.10
Pod Pod
v1.19.15
Pod Pod
v1.19.15
v1.19.15
v1.19.15
v1.20.10
v1.20.10
Pod Pod
Pod Pod
Drain
Pod Pod
v1.19.15
Pod Pod
v1.19.15
v1.20.10
v1.20.10
Pod Pod
Pod Pod
v1.20.10
v1.20.10
v1.20.10
v1.20.10
Pod Pod
Pod Pod
v1.19.15
v1.19.15
v1.20.10
v1.20.10
Pod Pod
Pod Pod
v1.20.10
v1.20.10
Pod Pod
Pod Pod
v1.20.10
v1.20.10
Pod Pod
Pod Pod
Drain
Drain
Drain
新しいバージョンの
Node を 2 つ追加
古いバージョンの
Node をドレイン
Pod を新しい Node に
スケジュール
新しいバージョンの
Node を 2 つ追加
古いバージョンの
Node をドレイン
Pod を新しい Node に
スケジュール
アップグレード開始
アップグレード完了
53. 54. Proprietary + Confidential
リリースチャネルを使ったアップグレードのワークフロー (例)
4. テスト環境のクラスタで
動作確認テスト
Google サポートに連絡
ロールバック
NG
5. メンテナンス時間枠で
本番環境の自動アップグレード
OK
Available バージョンがリリースされてから、自動
アップグレードが走るまでの目安
Patch バージョン: 1 週
Minor バージョン: 3 週
3. テスト環境のクラスタを
Available バージョンに
手動アップグレード
2. Available バージョン通知を
Cloud Functions で Slack に転送
1. Google Cloud から Pub / Sub へ
Available バージョン通知
55. 56. Proprietary + Confidential
● コンテナ移行は簡単ではない。コストの方が高くなることも、慎重な検討が必要。
● GCE からコンテナへ移行するのであれば、既存アプリケーションの規模に依るが、
まずは
Cloud Run から始めることを推奨。
コンテナの良さがありながら、運用は非常にシンプル。
● 大規模なアプリケーションであればGKE を推奨するが、K8s に精通した専門の
エンジニアをアサインすることを推奨。居ないなら少なくともGKE standard の
採用は避けた方が無難。
まとめ
57.