SlideShare a Scribd company logo
1 of 86
Anthos を使った
エンタープライズ向けクラスタの設計と
アップグレード戦略のススメ
Masahiko Utsunomiya
NTT DATA
2021/11/04
掲載内容は個人の見解であり、
所属する企業や組織の立場、戦略、意見を
代表するものではありません
Masahiko Utsunomiya
Infrastructure Engineer, Relationship Builder
NTT DATA
Speaker
✔ 金融分野のお客様のクラウド導入支援
✔ Jagu’e’r, Cloud Native 分科会メンバ
✔ コンテナ/クラウドネイティブ技術関連のコミュニティ活動
polar3130 polar3130
これから Google Cloud で GKE 上にマイクロサービスを
構築しようと考えている方
- Google Cloud の基本的な知識がある
- GKE を使ったことがある
- Istio (サービスメッシュ) の基本的な知識がある
想定聴講者
※ GKE : Google Kubernetes Engine
前置き
本資料中の GKE, ASM の挙動・仕様については、
以下のバージョンをベースに動作確認しています
- GKE : 1.21.3-gke.2001
- Node Image : cos_containerd
- ASM (In-cluster) : 1.11.2-asm.17
- Managed ASM : Regular channel (1.10.4-asm.9)
- asmcli : 1.11.2-asm.17+config2
※ ASM : Anthos Service Mesh
※ 基本 In-cluster Control Plane の ASM の話ですが、所々で Managed ASM にも言及しています
1. GKE x ASM の推奨構成とアップグレード計画
2. GKE のアップグレード戦略とプラクティス
3. ASM のアップグレード戦略とプラクティス
4. おわりに
Agenda
1
GKE x ASM の推奨構成と
アップグレード計画
クラスタ設計の要件
このセッションにおけるエンタープライズのイメージ
● アプリは新規もあれば Lift & Shift もあるマルチテナント
● NW・セキュリティとクラスタ運用の権限分掌
● 可用性要求の高い傾向
● ノードは VPC 上のプライベート NW で運用したい
● 厳格な構成管理
※ エンタープライズとひとくちに言っても企業によって事情は様々
私の経験に基づくひとつの例と捉えて頂ければ幸いです
8
Shared VPC
各テナントのアプリケーションやクラスタの管理を VPC と分離
● アプリは新規もあれば Lift & Shift もあるマルチテナント
● NW・セキュリティとクラスタ運用の権限分掌
Shared VPC
Network
Shared VPC
Connectivity
Shared VPC
Host Project
Shared VPC
Service Project
namespace: app-A
namespace: app-B
app A
project
app B
project
cluster
project
Regional Cluster
Control Plane の SLA 99.95 %, メンテナンスのダウンタイムなし
● 可用性要求の高い傾向
10
Kubernetes
Engine
Zone
Region
VPC Peering
Public
Endpoint
VPC Native & Private Cluster
ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限
● ノードは VPC 上のプライベート NW で運用したい
Primary Subnet Pod Range Service Range
Private
Endpoint
VPC Peering
Public
Endpoint
VPC Native & Private Cluster
ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限
● ノードは VPC 上のプライベート NW で運用したい
Primary Subnet Pod Range Service Range
Private
Endpoint
VPC Peering
Public
Endpoint
VPC Native & Private Cluster
ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限
● ノードは VPC 上のプライベート NW で運用したい
Primary Subnet Pod Range Service Range
Private
Endpoint
Master
Authorized
Networks
GKE のバージョニング(構成管理)
エンタープライズの本番環境では Static (no channel) がおすすめ
- Node pool の GKE バージョンを自動で最新にキープできるという恩恵がある一方、
自動アップグレードがサービスの SLA に及ぼす影響を事前に把握し切るのは困難
な場合がある
e.g.
- インシデントの検証中にアップグレードが走って再現環境の構成が変わってしまう
- Static なバージョンを選定する際は Regular channel を指標とするのがおすすめ
(Regular channel のリリースを起点にサポート期間が設定されるため)
14
エンタープライズにおける GKE の構成例
15
Shared VPC Network
Shared VPC
Connectivity
Kubernetes
Engine
Shared VPC
Host Project
Shared VPC
Service Project
(Cluster Project)
Public Endpoint
+ master authorized networks
Zone
✔ Shared VPC
✔ Regional
✔ VPC Native
✔ Private
✔ Static (no channel)
✔ Shared VPC
✔ Regional
✔ VPC Native
✔ Private
✔ Static (no channel)
エンタープライズにおける GKE の構成例
16
Anthos Service
Mesh
+
Shared VPC Network
Shared VPC
Connectivity
Kubernetes
Engine
Shared VPC
Host Project
Shared VPC
Service Project
(Cluster Project)
Zone
Public Endpoint
+ master authorized networks
Google が提供するマネージドサービスメッシュ
- Istiod は、Google 管理 か In-cluster か、ホスト先を選択可能
Anthos Service Mesh
HTTP/S, gRPC, TCP
mTLS
Mesh CA
Managed
backends
Istiod
Service A Service B
Envoy Envoy
In-cluster control plane
Data
Plane
Control
Plane
Telemetry
TLS certs
to Envoys
Config to Envoys
User’s Cluster
Anthos Service Mesh
Google が提供するマネージドサービスメッシュ
- Istiod は、Google 管理 か In-cluster か、ホスト先を選択可能
- Google 管理 の場合、ASM はリリースチャンネルの利用が必須
HTTP/S, gRPC, TCP
mTLS
Mesh CA
Managed
backends
(Managed
Istiod)
Service A Service B
Envoy Envoy
Managed Anthos Service Mesh
Control
Plane
Telemetry
TLS certs
to Envoys
Config to Envoys
User’s Cluster
Data
Plane
※ managed Data Plane は割愛
ASM のメリット
- サービスメッシュの維持運用がある程度省ける
- Cloud Operations との統合でテレメトリの収集が容易
- MCS (Multi Cluster Service) , MCI (Multi Cluster Ingress) を活用できる
- 中身がほぼ Istio なのでソースコードを読んで解析ができる
- Google のサポートが得られる (要 サポート契約)
19
ASM のメリット
- サービスメッシュの維持運用がある程度省ける
- Cloud Operations との統合でテレメトリの収集が容易
- MCS (Multi Cluster Service) , MCI (Multi Cluster Ingress) を活用できる
- 中身がほぼ Istio なのでソースコードを読んで解析ができる
- Google のサポートが得られる (要 サポート契約)
20
ASM のバージョニング
エンタープライズの本番環境では Static (In-cluster) がおすすめ
- ASM のアップグレードはサービスメッシュを利用する全サービスに影響するため、
マイナーバージョン間の変更差分を特定・検証したうえで本番適用したほうが安全
- ASM がサポートする GKE のバージョンは以下を確認
https://cloud.google.com/service-mesh/docs/supported-features#supported_platforms
Managed Control Plane の場合はリリースチャンネルが必須
- Rapid, Regular, Stable から選択でき、Namespace 毎に適用する
- GKE リリースチャンネルとは独立している
21
GKE (Static) x ASM (In-cluster control plane)
22
GKE Nodepool
GKE Control Plane
Service
Envoy
ASM Control Plane
(namespace: istio-system)
Application
Namespace
この構成は以下のような場合におすすめ:
- Kubernetes + Istio の環境が欲しいが、
Control Plane の運用は楽をしたい
- サービスメッシュの設計や運用の過程で
Google のサポートを受けたい
- GKE や ASM のマイナーバージョンを
Static に管理したい
バージョン管理がユーザの責務となるので、
GKE, ASM のアップグレード検討が必要
アップグレードサイクルの検討
GKE, ASM をセットにしてでも、短いアップグレード周期 (3か月程度) で
Regular channel 相当の追従を維持してゆくことを推奨
- GKE, ASM 両方のサポートバージョンを加味した運用サイクルの検討が必要
- チームが耐えられるなら GKE と ASM のアップグレードのタイミングを分け、
各回の変更を小さく、頻度を上げたほうが有事の切り分けはしやすいが...
- GKE と ASM のアップグレード時期をずらして、かつ高頻度のアップグレードサイクルを
維持しようとすると、(チームの初期段階は特に)インフラの運用負荷が高すぎる
- いずれにしても影響確認のためアップグレード前の十分な検証が必要
23
GKE のサポート期間とリリース実績
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
6か月経過、以後
新規クラスタ作成不可
※ 実際は月単位ではなく日単位でサポートポリシーが設定されている
https://cloud.google.com/kubernetes-engine/docs/release-schedule
Regular Channel リリース後から
14か月間のサポートが提供される
サポート終了後は
強制アップグレード
GKE は、Kubernetes とは独立したサポート期間が設定されている
GKE x ASM の有効な組み合わせ
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
ASM も Istio とは独立したサポート期間が設定されている
https://cloud.google.com/service-mesh/docs/getting-support#version_support_policy
GKE x ASM の有効な組み合わせ
26
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
各 ASM がサポートする GKE バージョンを加味して構成を選択する
GKE x ASM の有効な組み合わせ
27
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
GKE, ASM をセットで 3 か月周期にアップグレードする例を考える
GKE x ASM の有効な組み合わせ
28
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
GKE 1.18 x ASM 1.8 → GKE 1.19 x ASM 1.9
GKE x ASM の有効な組み合わせ
29
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
GKE 1.19 x ASM 1.9 → GKE 1.20 x ASM 1.10
GKE x ASM の有効な組み合わせ
30
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
本番運用の間、新規クラスタが作れる状態を維持しようとすると...
GKE x ASM の有効な組み合わせ
31
GKE
1.17
1.18
1.19
1.20
1.21
1.22
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
ASM
1.7
1.8
1.9
1.10
1.11
9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
2021 2022 2023
もうひとつ先のバージョンへのアップグレードが必要になる場合も
通常の(直上バージョンへの)アップグレードを 2回転することを推奨
- ASM も含めて Version Skew を避け、変更点追跡やテストを複雑化させない
サポート切れが近い場合のアップグレード
Nodepool
1.18
1.18
Master
1.19
1.19
1.20
1.20
ASM
1.9 1.10 1.11
①
②
③
④
⑤
⑥
ダウングレードが必要な場合
本番運用では、アップグレード失敗時のロールバックで必要になる
- Node pool のみのダウングレードか、新規クラスタへの移行で対応する
- ロールバックが発生する可能性を考慮してアップグレードスケジュールを立てる
- 新規クラスタを作成できないと Control Plane 込みのロールバックはできない
1.20
1.21
1.21
Node pool
Master
1.21
1.21
1.20
1.20
補足:メンテナンスウィンドウの設定
Regional Cluster でも、エンタープライズの本番環境では設定を推奨
- ダウンタイム影響の少ない時間帯を指定してメンテナンスする
- (メンテナンスポリシーの有効な範囲内で)一時的なメンテナンス除外も可能
補足:Private Cluster と ASM
ASM (In-cluster) の導入は、Private Cluster の構成を限定しない
- 3パターン※1いずれも構成可能だが、セキュリティの観点から、Public Endpoint を
有効化するなら Master Authorized Networks は設定したほうが良い
- Managed ASM の場合は Public Endpoint を無効化できないが、有効にさえすれば
Managed Istiod は対象クラスタの Data Plane にアクセスできる※2
(Master Authz NWs の有無を問わない、とされているが運用上は asmcli の実行元の登録が必要)
- VPC Service Controls を利用する場合は Mesh CA (+ Cloud Ops) も併せて境界内
に含めることが必要
※1 https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept#endpoints_in_private_clusters
※2 https://cloud.google.com/service-mesh/docs/supported-features-mcp#environments
35
2
GKE のアップグレード戦略と
プラクティス
GKE (Static) + ASM (In-cluster control plane) (再掲)
37
GKE Nodepool
GKE Control Plane
Service
Envoy
ASM Control Plane
(namespace: istio-system)
Application
Namespace
以降は 1章で取り上げたこの構成を題材に、
GKE x ASM のアップグレード戦略の選択肢と
推奨を紹介
(この構成では)
バージョン管理がユーザの責務となるので、
GKE, ASM のアップグレード検討が必要
②
①
GKE のアップグレード戦略の選択肢
可用性、コスト、リリース頻度など様々な指標に影響
e.g. Cloud DNS
1.20
Cluster Migration
Inplace
1.20
1.21
1.20
1.21
Blue/Green with Node pool
①
1.20
1.21
② 1.21
1.20
1.21
38
Cluster Migration の難しさ
アップグレード毎にクリーンな状態のクラスタを利用できる一方、
クラスタ内で完結するアップグレードより考慮事項が多い
- 例えば CI/CD パイプラインの移行、ステートフルワークロードの移行など、
アプリとインフラの構成によって影響は様々
- マルチテナントクラスタなら尚更。移行期間をある程度長く確保して
各アプリのタイミングで移行してもらう、と今度はコストの問題も出てくる
- マルチクラスタ構成をとり、クラスタ毎に順次アップグレードする手もあるが、
ある程度大規模でないと運用負荷に負けてしまうので初手には向いていない
39
GKE の強み
Kubernetes の Control Plane を運用する必要がない
- etcd を擁するステートフルなシステムとも言える Control Plane のアップグレード
に関して頭を悩ませる必要がない
- パッチバージョンは自動アップグレードで常に最新化される
セルフホスト Kubernetes の環境と比べて、Cluster Migration が
必要なケースは限定される
40
クラスタ内で完結するアップグレード戦略
Inplace と Blue/Green with Node pool のふたつの選択肢
- クラスタへのアクセスが継続的に確保できる Blue/Green with Node pool がおすすめ
- Inplace は GKE 任せになるため、アップグレード中は操作を受け付けない
41
②
①
Inplace
1.20
1.21
1.20
1.21
Blue/Green with Node pool
①
1.20
1.21
② 1.21
1.20
クラスタ内で完結するアップグレード戦略
Inplace と Blue/Green with Node pool のふたつの選択肢
- クラスタへのアクセスが継続的に確保できる Blue/Green with Node pool がおすすめ
- Inplace は GKE 任せになるため、アップグレード中は操作を受け付けない
42
Inplace
①
1.20
1.21
② 1.21
1.20
おすすめの GKE アップグレード戦略
まずは 「Blue/Green with Node pool を原則として、必要なときだけ
Cluster Migration を用いる」という戦略で始めてみては?
今回紹介している構成で Cluster Migration が必要になるケース
- クラスタの作成時にしか有効化できない新機能を導入したい
- やむを得ない理由で Control Plane をダウングレードしたい
- (クラスタの Control Plane の動作に問題があり、自動修復で回復しない)
43
GKE アップグレードの流れ (Blue/Green with Node pool)
(1) Control Plane のアップグレード
Data Plane のバージョンが Control Plane を超えることはできない
44
1.20
1.20
1.21
Ready Ready Ready
※ 説明の簡略化のため Node pool は
ひとつだけにしています
GKE アップグレードの流れ (Blue/Green with Node pool)
(2) 新しいバージョンの Node pool を追加
移行元の Node pool で展開されているワークロード以上のリソースが必要
45
1.20
1.21
1.21
Ready Ready Ready
Ready Ready Ready
GKE アップグレードの流れ (Blue/Green with Node pool)
(3) 移行元 Node pool の全 Node を Cordon
新規のワークロードが移行元 Node pool にデプロイされなくなる
46
1.21
1.21
Ready, SchedulingDisabled Ready Ready Ready
$ kubectl cordon ...
1.20
GKE アップグレードの流れ (Blue/Green with Node pool)
(4) 移行元 Node pool の Node を順次 Drain
移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ
47
1.21
1.21
Ready, SchedulingDisabled Ready Ready Ready
$ kubectl drain ...
1.20
GKE アップグレードの流れ (Blue/Green with Node pool)
(4) 移行元 Node pool の Node を順次 Drain
移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ
48
1.20
1.21
1.21
Ready, SchedulingDisabled Ready Ready Ready
$ kubectl drain ...
GKE アップグレードの流れ (Blue/Green with Node pool)
(4) 移行元 Node pool の Node を順次 Drain
移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ
49
1.20
1.21
1.21
Ready Ready Ready
$ kubectl drain ...
GKE アップグレードの流れ (Blue/Green with Node pool)
(4) 移行元 Node pool の Node を順次 Drain
移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ
50
1.20
1.21
1.21
Ready Ready Ready
GKE アップグレードの流れ (Blue/Green with Node pool)
(5) 古い Node pool を削除して完了
51
1.21
1.21
Ready Ready Ready
GKE アップグレードの流れ (Blue/Green with Node pool)
補足.1 Cordon せずに Drain してしまうと...
移行元 Node pool の別の Node にスケジュールされてしまう可能性がある
52
1.21
1.21
Ready Ready Ready
Ready Ready
$ kubectl drain ...
1.20
GKE アップグレードの流れ (Blue/Green with Node pool)
補足.2 新しいバージョンの Node の Ready を確認せず Drain すると...
クラスタオートスケーラーが有効な場合、移行元がスケールしてしまう可能性がある
53
1.21
1.21
Ready, SchedulingDisabled NotReady...
$ kubectl drain ...
1.20
Ready
GKE アップグレードの流れ (Blue/Green with Node pool)
補足.2 新しいバージョンの Node の Ready を確認せず Drain すると...
クラスタオートスケーラーが有効な場合、移行元がスケールしてしまう可能性がある
54
1.21
1.21
Ready, SchedulingDisabled NotReady...
$ kubectl drain ...
1.20
サービスの可用性維持
アップグレードにあたり、可用性に影響する各種設定は忘れずに
- Pod Disruption Budget
- Graceful な Pod の終了
- PreStop ライフサイクルフックによるアプリケーションの正常終了処理
- terminationGracePeriodSeconds の設定見直し
etc.
ワークアラウンドな手段として、Drain のオプションで待ち時間を指定することも可能
- kubectl drain --grace-period=xx (sec.)
55
補足:Istiod と Drain の関係
Istiod がデプロイされている Node を手動で Drain するときは
--delete-local-data (~1.19) / --delete-emptydir-data (1.20+) オプションが必要
- ASM の Control Plane である Istiod が Local Storage を利用しているため
- Cluster Autoscaler や Node Auto-Provisioning が有効な環境では
Local Storage を利用する Pod がデプロイされた Node を自動終了できなかったが、
GKE 1.22+ では以下ラベルでの指定がない限り終了可能になる
- Pod -> cluster-autoscaler.kubernetes.io/safe-to-evict: “false”
- Node -> cluster-autoscaler.kubernetes.io/scale-down-disabled: “true”
56
補足:Preemptible VM / Spot VM の利用
GKE 1.20+ では、Preemptible VM / Spot VM なノードの kubelet で
Graceful Node Shutdown がデフォルト有効になっている
- terminationGracePeriodSeconds は最大 25秒までしかリクエストできない
- コスト削減目的で開発環境だけ Preemptible VM / Spot VM を利用、といった場合は
Pod の終了に長時間を要するワークロードの可用性試験などに影響するので注意
- Evict された場合、Status が Failed となり、次回の Pod GC でクリーンアップされる
https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms#termination_and_graceful_shutdown_of
補足:Graceful Node Shutdown
Kubelet がノードの終了を検出し、Pod を安全に終了させるための機能
- Kubernetes では 1.21 からベータに昇格した機能
- ノードの終了を検知すると、systemd-logind の inhibitor-locks を利用して
ShutdownGracePeriod の期間だけシャットダウンを遅らせる
- ShutdownGracePeriod の期間のうち、ShutdownGracePeriodCriticalPods で指定
した期間を CriticalPods (Priority Class が system-cluster-critical or system-node-critical の Pod)
の終了のために予約する
58
https://kubernetes.io/docs/concepts/architecture/nodes/#graceful-node-shutdown
3
ASM のアップグレード戦略と
プラクティス
ASM (Control Plane) のアップグレード戦略
Istio のアップグレード戦略には Inplace と Canary が使えるが、
ASM の場合は原則 Canary になる
ASM
Control Plane
ASM
Control Plane
mTLS
Service A Service B
Envoy Envoy
Canary
Inplace
ASM
Control Plane
mTLS
Service A Service B
Envoy Envoy
1.10
1.11
1.10 1.11
60
ASM のアップグレードツール
install_asm
- 従来提供されてきた ASM のインストール・アップグレードを補助するスクリプト
- 後継となる asmcli の GA に伴い、サポート提供は ASM 1.11 まで
asmcli
- ASM のインストール・アップグレードに必須となる新しいコマンドラインツール
- 今後はインストール先のプラットフォーム (e.g. Anthos on AWS / VMware, ...) を問わず
asmcli で共通的なオペレーションが可能になる
61
補足:install_asm から asmcli への移行
確認できている主な変更点
- 実行モード(インストール or アップグレード)の自動判別ができる
- デフォルトの Ingress gateway が自動挿入されなくなった
- 利用にあたりフリートの登録が必須になった
- リビジョンを指定したインストール・アップグレードが可能になった
- install_asm の頃はリビジョンがスクリプト内に直書きされており、ダウングレードなどで
特定バージョンの ASM をインストールしたい場合はスクリプトを改変する必要があった
62
Inplace
asmcli によるインストール/アップグレード
asmcli はターゲットとなるプラットフォームの状態に応じて
ASM のインストール方法を自動で切り替える
ASM
Control Plane
$ asmcli install -r asm-XXXX-X
1.10.4-asm.14
① check
Canary
② ? current ver. == asm-XXXX-X
ASM アップグレードの流れ
ASM 1.10 の環境を ASM 1.11 にアップグレードする場合を考える
ASM Control Plane
v1.10
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
ASM アップグレードの流れ
ASM Control Plane
v1.10
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
$ asmcli install -r asm-1112-17
ASM 1.11 をインストール
- この時点では既存の ASM Data Plane には影響しない
ASM アップグレードの流れ
ASM 1.11 をインストール
- この時点では既存の ASM Data Plane には影響しない
ASM Control Plane
v1.10
ASM Control Plane
v1.11
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
ASM アップグレードの流れ
移行するテナントの Namespace のラベルを書き換え、Pod を再起動
- 図はテナント B が ASM 1.11 に移行した状態
ASM Control Plane
v1.10
ASM Control Plane
v1.11
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
ASM アップグレードの流れ
すべての Data Plane を新バージョンの ASM に移行
ASM Control Plane
v1.10
ASM Control Plane
v1.11
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
ASM アップグレードの流れ
旧バージョンの Control Plane を削除してアップグレード完了
ASM Control Plane
v1.11
mTLS
Service A Service B
Envoy Envoy
Namespace: istio-system
Namespace: tenant-B
Namespace: tenant-A
ASM アップグレード時のリソース消費
Canary Upgrade では一時的に倍のリソースが必要になることに注意
- ノードリソースや、ResourceQuota などに余裕がある状態で実施すること
ASM
Control Plane
ASM
Control Plane
1.10 1.11
70
Gateway のアップグレード戦略の選択肢
基本は Inplace で十分、より詳細に制御したい場合は Canary も検討
Canary
with external traffic shifting
Inplace Canary
Istio-Ingress
Istio-Ingress
1.10 1.10
Istio-
Ingress-
canary
Istio-Ingress
Istio-Ingress
1.11
1.10
canary
Istio-Ingress
1.11
1.10
Istio-
Ingress-
canary
1.10
1.11
Gateway リソースのアップグレード
ASM 1.11+ では、Gateway Injection によるアップグレードが可能
- Gateway 用の新たな Injection Template (inject.istio.io/templates=gateway) が提供される
- Gateway リソースを配置する Namespace に istio-proxy のリビジョンを指定したラベルを付与
- アプリケーションの Sidecar として istio-proxy を自動挿入するときと同様の仕組みで、
Admission Webhook によるアップグレードが可能になった
Ingress
Gateway
Egress
Gateway
Namespace: istio-gateway
Labels: istio.io/rev= asm-1104-14
→ asm-1112-17
edit
restart restart
https://istio.io/latest/docs/setup/additional-setup/gateway/
72
Gateway リソースの配置先 (ASM 1.11+)
ASM 1.11+ では Gateway リソースを Control Plane とは別の
Namespace に配置する構成がベストプラクティス
- ただし、ASM 1.10 までを install_asm でインストールしてきたユーザの多くは istio-system 内
で Control Plane と同居した構成になっているはず
- Gateway リソースを別の Namespace に移行する際は、各種関連リソースにも注意
- Network Policy, Service Entry, Virtual Service, ...
ASM
Control Plane
Ingress
Gateway
Namespace: istio-system Namespace: istio-gateway
Egress
Gateway
https://cloud.google.com/service-mesh/docs/gateways#best_practices_for_deploying_gateways
本番の ASM をアップグレードする前に...
ツールや API バージョンの変更頻度が高いこともあり、
アップグレードするバージョン間の差分調査や影響確認の試験は
欠かさず実施することを推奨
- asmcli は install_asm と並行してサポート提供されるバージョンが ASM 1.11 のみ
となるため、1.11 のうちにツールの移行を推奨
- 直近では、GKE 1.22 の API 廃止に伴い、ASM としてはパッチバージョン間で
API バージョンが変更されたケースもある (ASM 1.10.3 -> 1.10.4)
74
補足:asmcli 実行後の不要な権限の削除
75
asmcli (および install_asm) は実行ユーザに対して強力な権限を付与する
- 付与した権限は実行後も残るため、不要な権限は都度削除が必要
asmcli / install_asm が付与する権限を確認するには --verbose オプションを追加
- Kubernetes RBAC
- 対象の Google アカウントに対する cluster-admin の権限が残る
- Cloud IAM
- 対象の Google アカウントに対する Mesh Config Admin などの権限が残る
補足:ASM Data Plane のアップグレード
Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず
- Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動
ASM Control Plane
v1.10
ASM Control Plane
v1.11
Service A
Envoy
Namespace: tenant-A
Labels: istio.io/rev=asm-110x-xx
76
補足:ASM Data Plane のアップグレード
Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず
- Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動
ASM Control Plane
v1.10
ASM Control Plane
v1.11
Service A
Envoy
Namespace: tenant-A
Labels: istio.io/rev=asm-110x-xx
edit
77
補足:ASM Data Plane のアップグレード
Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず
- Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動
ASM Control Plane
v1.10
ASM Control Plane
v1.11
Service A
Envoy
Namespace: tenant-A
Labels: istio.io/rev=asm-111x-xx
edit
78
補足:ASM Data Plane のアップグレード
Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず
- Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動
ASM Control Plane
v1.10
ASM Control Plane
v1.11
Service A
Envoy
Namespace: tenant-A
Labels: istio.io/rev=asm-111x-xx
$ kubectl rollout restart ...
79
補足:ASM Data Plane のアップグレード
Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず
- Namespace のラベルを入れ替え、Pod を再起動
ASM Control Plane
v1.10
ASM Control Plane
v1.11
Service A
Envoy
Namespace: tenant-A
Labels: istio.io/rev=asm-111x-xx
injecton
80
4
おわりに
より大規模・複雑な環境
Anthos の各種サービスを活用することで、
より大規模・複雑な要件にも応えるアーキテクチャを構成できる
- マルチプラットフォーム環境の複数クラスタの統合管理
- 異なる GCP プロジェクトのマルチクラスタメッシュ構成
- etc...
先日の Google Cloud Next '21 でも Anthos 関連で多数のリリース
https://cloud.google.com/blog/ja/topics/hybrid-cloud/introducing-anthos-for-vms-and-other-app-modernization-tools
82
アーキテクチャや運用戦略の背景にあるもの
エンタープライズとひとくちに言ってもその事情は各社様々
- ハイブリッド or マルチクラウド環境
- マルチテナントの単一クラスタ or テナント別のマルチクラスタ
- 組織構造、運用体制
- etc...
条件が違えば、適したアーキテクチャ、運用戦略も変わってくる
83
エンタープライズ向けの Google Cloud 公式ユーザコミュニティ
- 参加企業 140+, 登録会員 600+
- NDA ベースで事例共有やディスカッション
- 分科会
- デジタル/クラウド人材育成分科会
- データ利活用分科会
- Cloud Native 分科会
エンタープライズにおける Cloud Native 技術の
活用など意見交換したい方、お待ちしています!
所属コミュニティ Jagu'e'r のご紹介
84
https://jaguer.jp
まとめ
GKE x ASM のエンタープライズ向け推奨構成を紹介
- GKE (Static) x ASM (In-cluster control plane)
- アップグレードは 3か月間隔で計画することを推奨
GKE のアップグレードは Blue/Green with Node pool を推奨
- クラスタ再作成の必要に応じて Cluster Migration と使い分け
ASM のアップグレードは原則 Canary Upgrade
- 今後は asmcli を使ったオペレーションが必須
- Gateway リソースのアップグレードは特に可用性の事前確認を十分に
Thank you for your attention !
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です

More Related Content

What's hot

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Preferred Networks
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)NTT DATA Technology & Innovation
 
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話imurata8203
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
世の中のPostgreSQLエンジニアのpsql設定(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
 
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 

Similar to Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)

[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送Google Cloud Platform - Japan
 
Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)Yu Amano
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送Google Cloud Platform - Japan
 
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送Google Cloud Platform - Japan
 
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise Cloud
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise CloudCODT2020 OpenStack Version Up and VMHA Masakari in Enterprise Cloud
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise CloudToshikazu Ichikawa
 
Klocwork 2018.0 アップデート
Klocwork 2018.0 アップデートKlocwork 2018.0 アップデート
Klocwork 2018.0 アップデートMasaru Horioka
 
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法について
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法についてContainer related technologies and how to start it コンテナー関連技術の概要と取り組む方法について
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法についてSatoru Yoshida
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライドEMC Japan
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)Shinya Sugiyama
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシートMasayuki Ozawa
 
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...Google Cloud Platform - Japan
 
Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Kishin Yagami
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...Google Cloud Platform - Japan
 

Similar to Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料) (20)

[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
 
Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
 
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
 
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise Cloud
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise CloudCODT2020 OpenStack Version Up and VMHA Masakari in Enterprise Cloud
CODT2020 OpenStack Version Up and VMHA Masakari in Enterprise Cloud
 
Nsx t api-automation_202103
Nsx t api-automation_202103Nsx t api-automation_202103
Nsx t api-automation_202103
 
Klocwork 2018.0 アップデート
Klocwork 2018.0 アップデートKlocwork 2018.0 アップデート
Klocwork 2018.0 アップデート
 
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法について
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法についてContainer related technologies and how to start it コンテナー関連技術の概要と取り組む方法について
Container related technologies and how to start it コンテナー関連技術の概要と取り組む方法について
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdfReinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
 
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド
2015.6.5 EMC主催OpenStackセミナー - EMC講演スライド
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...
[Cloud OnAir] [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2020年5月28日 放送 20...
 
Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
最近のJuju/MAAS について
最近のJuju/MAAS について最近のJuju/MAAS について
最近のJuju/MAAS について
 
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...
[Cloud OnAir] Config Connector の特徴と、 Anthos Config Management を 組み合わせた、 構成管理の...
 

More from NTT DATA Technology & Innovation

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Recently uploaded (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)

  • 3. Masahiko Utsunomiya Infrastructure Engineer, Relationship Builder NTT DATA Speaker ✔ 金融分野のお客様のクラウド導入支援 ✔ Jagu’e’r, Cloud Native 分科会メンバ ✔ コンテナ/クラウドネイティブ技術関連のコミュニティ活動 polar3130 polar3130
  • 4. これから Google Cloud で GKE 上にマイクロサービスを 構築しようと考えている方 - Google Cloud の基本的な知識がある - GKE を使ったことがある - Istio (サービスメッシュ) の基本的な知識がある 想定聴講者 ※ GKE : Google Kubernetes Engine
  • 5. 前置き 本資料中の GKE, ASM の挙動・仕様については、 以下のバージョンをベースに動作確認しています - GKE : 1.21.3-gke.2001 - Node Image : cos_containerd - ASM (In-cluster) : 1.11.2-asm.17 - Managed ASM : Regular channel (1.10.4-asm.9) - asmcli : 1.11.2-asm.17+config2 ※ ASM : Anthos Service Mesh ※ 基本 In-cluster Control Plane の ASM の話ですが、所々で Managed ASM にも言及しています
  • 6. 1. GKE x ASM の推奨構成とアップグレード計画 2. GKE のアップグレード戦略とプラクティス 3. ASM のアップグレード戦略とプラクティス 4. おわりに Agenda
  • 7. 1 GKE x ASM の推奨構成と アップグレード計画
  • 8. クラスタ設計の要件 このセッションにおけるエンタープライズのイメージ ● アプリは新規もあれば Lift & Shift もあるマルチテナント ● NW・セキュリティとクラスタ運用の権限分掌 ● 可用性要求の高い傾向 ● ノードは VPC 上のプライベート NW で運用したい ● 厳格な構成管理 ※ エンタープライズとひとくちに言っても企業によって事情は様々 私の経験に基づくひとつの例と捉えて頂ければ幸いです 8
  • 9. Shared VPC 各テナントのアプリケーションやクラスタの管理を VPC と分離 ● アプリは新規もあれば Lift & Shift もあるマルチテナント ● NW・セキュリティとクラスタ運用の権限分掌 Shared VPC Network Shared VPC Connectivity Shared VPC Host Project Shared VPC Service Project namespace: app-A namespace: app-B app A project app B project cluster project
  • 10. Regional Cluster Control Plane の SLA 99.95 %, メンテナンスのダウンタイムなし ● 可用性要求の高い傾向 10 Kubernetes Engine Zone Region
  • 11. VPC Peering Public Endpoint VPC Native & Private Cluster ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限 ● ノードは VPC 上のプライベート NW で運用したい Primary Subnet Pod Range Service Range Private Endpoint
  • 12. VPC Peering Public Endpoint VPC Native & Private Cluster ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限 ● ノードは VPC 上のプライベート NW で運用したい Primary Subnet Pod Range Service Range Private Endpoint
  • 13. VPC Peering Public Endpoint VPC Native & Private Cluster ノードを内部 IP アドレスのみで構成、Control Plane のアクセス制限 ● ノードは VPC 上のプライベート NW で運用したい Primary Subnet Pod Range Service Range Private Endpoint Master Authorized Networks
  • 14. GKE のバージョニング(構成管理) エンタープライズの本番環境では Static (no channel) がおすすめ - Node pool の GKE バージョンを自動で最新にキープできるという恩恵がある一方、 自動アップグレードがサービスの SLA に及ぼす影響を事前に把握し切るのは困難 な場合がある e.g. - インシデントの検証中にアップグレードが走って再現環境の構成が変わってしまう - Static なバージョンを選定する際は Regular channel を指標とするのがおすすめ (Regular channel のリリースを起点にサポート期間が設定されるため) 14
  • 15. エンタープライズにおける GKE の構成例 15 Shared VPC Network Shared VPC Connectivity Kubernetes Engine Shared VPC Host Project Shared VPC Service Project (Cluster Project) Public Endpoint + master authorized networks Zone ✔ Shared VPC ✔ Regional ✔ VPC Native ✔ Private ✔ Static (no channel)
  • 16. ✔ Shared VPC ✔ Regional ✔ VPC Native ✔ Private ✔ Static (no channel) エンタープライズにおける GKE の構成例 16 Anthos Service Mesh + Shared VPC Network Shared VPC Connectivity Kubernetes Engine Shared VPC Host Project Shared VPC Service Project (Cluster Project) Zone Public Endpoint + master authorized networks
  • 17. Google が提供するマネージドサービスメッシュ - Istiod は、Google 管理 か In-cluster か、ホスト先を選択可能 Anthos Service Mesh HTTP/S, gRPC, TCP mTLS Mesh CA Managed backends Istiod Service A Service B Envoy Envoy In-cluster control plane Data Plane Control Plane Telemetry TLS certs to Envoys Config to Envoys User’s Cluster
  • 18. Anthos Service Mesh Google が提供するマネージドサービスメッシュ - Istiod は、Google 管理 か In-cluster か、ホスト先を選択可能 - Google 管理 の場合、ASM はリリースチャンネルの利用が必須 HTTP/S, gRPC, TCP mTLS Mesh CA Managed backends (Managed Istiod) Service A Service B Envoy Envoy Managed Anthos Service Mesh Control Plane Telemetry TLS certs to Envoys Config to Envoys User’s Cluster Data Plane ※ managed Data Plane は割愛
  • 19. ASM のメリット - サービスメッシュの維持運用がある程度省ける - Cloud Operations との統合でテレメトリの収集が容易 - MCS (Multi Cluster Service) , MCI (Multi Cluster Ingress) を活用できる - 中身がほぼ Istio なのでソースコードを読んで解析ができる - Google のサポートが得られる (要 サポート契約) 19
  • 20. ASM のメリット - サービスメッシュの維持運用がある程度省ける - Cloud Operations との統合でテレメトリの収集が容易 - MCS (Multi Cluster Service) , MCI (Multi Cluster Ingress) を活用できる - 中身がほぼ Istio なのでソースコードを読んで解析ができる - Google のサポートが得られる (要 サポート契約) 20
  • 21. ASM のバージョニング エンタープライズの本番環境では Static (In-cluster) がおすすめ - ASM のアップグレードはサービスメッシュを利用する全サービスに影響するため、 マイナーバージョン間の変更差分を特定・検証したうえで本番適用したほうが安全 - ASM がサポートする GKE のバージョンは以下を確認 https://cloud.google.com/service-mesh/docs/supported-features#supported_platforms Managed Control Plane の場合はリリースチャンネルが必須 - Rapid, Regular, Stable から選択でき、Namespace 毎に適用する - GKE リリースチャンネルとは独立している 21
  • 22. GKE (Static) x ASM (In-cluster control plane) 22 GKE Nodepool GKE Control Plane Service Envoy ASM Control Plane (namespace: istio-system) Application Namespace この構成は以下のような場合におすすめ: - Kubernetes + Istio の環境が欲しいが、 Control Plane の運用は楽をしたい - サービスメッシュの設計や運用の過程で Google のサポートを受けたい - GKE や ASM のマイナーバージョンを Static に管理したい バージョン管理がユーザの責務となるので、 GKE, ASM のアップグレード検討が必要
  • 23. アップグレードサイクルの検討 GKE, ASM をセットにしてでも、短いアップグレード周期 (3か月程度) で Regular channel 相当の追従を維持してゆくことを推奨 - GKE, ASM 両方のサポートバージョンを加味した運用サイクルの検討が必要 - チームが耐えられるなら GKE と ASM のアップグレードのタイミングを分け、 各回の変更を小さく、頻度を上げたほうが有事の切り分けはしやすいが... - GKE と ASM のアップグレード時期をずらして、かつ高頻度のアップグレードサイクルを 維持しようとすると、(チームの初期段階は特に)インフラの運用負荷が高すぎる - いずれにしても影響確認のためアップグレード前の十分な検証が必要 23
  • 24. GKE のサポート期間とリリース実績 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 6か月経過、以後 新規クラスタ作成不可 ※ 実際は月単位ではなく日単位でサポートポリシーが設定されている https://cloud.google.com/kubernetes-engine/docs/release-schedule Regular Channel リリース後から 14か月間のサポートが提供される サポート終了後は 強制アップグレード GKE は、Kubernetes とは独立したサポート期間が設定されている
  • 25. GKE x ASM の有効な組み合わせ GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 ASM も Istio とは独立したサポート期間が設定されている https://cloud.google.com/service-mesh/docs/getting-support#version_support_policy
  • 26. GKE x ASM の有効な組み合わせ 26 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 各 ASM がサポートする GKE バージョンを加味して構成を選択する
  • 27. GKE x ASM の有効な組み合わせ 27 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 GKE, ASM をセットで 3 か月周期にアップグレードする例を考える
  • 28. GKE x ASM の有効な組み合わせ 28 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 GKE 1.18 x ASM 1.8 → GKE 1.19 x ASM 1.9
  • 29. GKE x ASM の有効な組み合わせ 29 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 GKE 1.19 x ASM 1.9 → GKE 1.20 x ASM 1.10
  • 30. GKE x ASM の有効な組み合わせ 30 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 本番運用の間、新規クラスタが作れる状態を維持しようとすると...
  • 31. GKE x ASM の有効な組み合わせ 31 GKE 1.17 1.18 1.19 1.20 1.21 1.22 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 ASM 1.7 1.8 1.9 1.10 1.11 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2021 2022 2023 もうひとつ先のバージョンへのアップグレードが必要になる場合も
  • 32. 通常の(直上バージョンへの)アップグレードを 2回転することを推奨 - ASM も含めて Version Skew を避け、変更点追跡やテストを複雑化させない サポート切れが近い場合のアップグレード Nodepool 1.18 1.18 Master 1.19 1.19 1.20 1.20 ASM 1.9 1.10 1.11 ① ② ③ ④ ⑤ ⑥
  • 33. ダウングレードが必要な場合 本番運用では、アップグレード失敗時のロールバックで必要になる - Node pool のみのダウングレードか、新規クラスタへの移行で対応する - ロールバックが発生する可能性を考慮してアップグレードスケジュールを立てる - 新規クラスタを作成できないと Control Plane 込みのロールバックはできない 1.20 1.21 1.21 Node pool Master 1.21 1.21 1.20 1.20
  • 34. 補足:メンテナンスウィンドウの設定 Regional Cluster でも、エンタープライズの本番環境では設定を推奨 - ダウンタイム影響の少ない時間帯を指定してメンテナンスする - (メンテナンスポリシーの有効な範囲内で)一時的なメンテナンス除外も可能
  • 35. 補足:Private Cluster と ASM ASM (In-cluster) の導入は、Private Cluster の構成を限定しない - 3パターン※1いずれも構成可能だが、セキュリティの観点から、Public Endpoint を 有効化するなら Master Authorized Networks は設定したほうが良い - Managed ASM の場合は Public Endpoint を無効化できないが、有効にさえすれば Managed Istiod は対象クラスタの Data Plane にアクセスできる※2 (Master Authz NWs の有無を問わない、とされているが運用上は asmcli の実行元の登録が必要) - VPC Service Controls を利用する場合は Mesh CA (+ Cloud Ops) も併せて境界内 に含めることが必要 ※1 https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept#endpoints_in_private_clusters ※2 https://cloud.google.com/service-mesh/docs/supported-features-mcp#environments 35
  • 37. GKE (Static) + ASM (In-cluster control plane) (再掲) 37 GKE Nodepool GKE Control Plane Service Envoy ASM Control Plane (namespace: istio-system) Application Namespace 以降は 1章で取り上げたこの構成を題材に、 GKE x ASM のアップグレード戦略の選択肢と 推奨を紹介 (この構成では) バージョン管理がユーザの責務となるので、 GKE, ASM のアップグレード検討が必要
  • 38. ② ① GKE のアップグレード戦略の選択肢 可用性、コスト、リリース頻度など様々な指標に影響 e.g. Cloud DNS 1.20 Cluster Migration Inplace 1.20 1.21 1.20 1.21 Blue/Green with Node pool ① 1.20 1.21 ② 1.21 1.20 1.21 38
  • 39. Cluster Migration の難しさ アップグレード毎にクリーンな状態のクラスタを利用できる一方、 クラスタ内で完結するアップグレードより考慮事項が多い - 例えば CI/CD パイプラインの移行、ステートフルワークロードの移行など、 アプリとインフラの構成によって影響は様々 - マルチテナントクラスタなら尚更。移行期間をある程度長く確保して 各アプリのタイミングで移行してもらう、と今度はコストの問題も出てくる - マルチクラスタ構成をとり、クラスタ毎に順次アップグレードする手もあるが、 ある程度大規模でないと運用負荷に負けてしまうので初手には向いていない 39
  • 40. GKE の強み Kubernetes の Control Plane を運用する必要がない - etcd を擁するステートフルなシステムとも言える Control Plane のアップグレード に関して頭を悩ませる必要がない - パッチバージョンは自動アップグレードで常に最新化される セルフホスト Kubernetes の環境と比べて、Cluster Migration が 必要なケースは限定される 40
  • 41. クラスタ内で完結するアップグレード戦略 Inplace と Blue/Green with Node pool のふたつの選択肢 - クラスタへのアクセスが継続的に確保できる Blue/Green with Node pool がおすすめ - Inplace は GKE 任せになるため、アップグレード中は操作を受け付けない 41 ② ① Inplace 1.20 1.21 1.20 1.21 Blue/Green with Node pool ① 1.20 1.21 ② 1.21 1.20
  • 42. クラスタ内で完結するアップグレード戦略 Inplace と Blue/Green with Node pool のふたつの選択肢 - クラスタへのアクセスが継続的に確保できる Blue/Green with Node pool がおすすめ - Inplace は GKE 任せになるため、アップグレード中は操作を受け付けない 42 Inplace ① 1.20 1.21 ② 1.21 1.20
  • 43. おすすめの GKE アップグレード戦略 まずは 「Blue/Green with Node pool を原則として、必要なときだけ Cluster Migration を用いる」という戦略で始めてみては? 今回紹介している構成で Cluster Migration が必要になるケース - クラスタの作成時にしか有効化できない新機能を導入したい - やむを得ない理由で Control Plane をダウングレードしたい - (クラスタの Control Plane の動作に問題があり、自動修復で回復しない) 43
  • 44. GKE アップグレードの流れ (Blue/Green with Node pool) (1) Control Plane のアップグレード Data Plane のバージョンが Control Plane を超えることはできない 44 1.20 1.20 1.21 Ready Ready Ready ※ 説明の簡略化のため Node pool は ひとつだけにしています
  • 45. GKE アップグレードの流れ (Blue/Green with Node pool) (2) 新しいバージョンの Node pool を追加 移行元の Node pool で展開されているワークロード以上のリソースが必要 45 1.20 1.21 1.21 Ready Ready Ready Ready Ready Ready
  • 46. GKE アップグレードの流れ (Blue/Green with Node pool) (3) 移行元 Node pool の全 Node を Cordon 新規のワークロードが移行元 Node pool にデプロイされなくなる 46 1.21 1.21 Ready, SchedulingDisabled Ready Ready Ready $ kubectl cordon ... 1.20
  • 47. GKE アップグレードの流れ (Blue/Green with Node pool) (4) 移行元 Node pool の Node を順次 Drain 移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ 47 1.21 1.21 Ready, SchedulingDisabled Ready Ready Ready $ kubectl drain ... 1.20
  • 48. GKE アップグレードの流れ (Blue/Green with Node pool) (4) 移行元 Node pool の Node を順次 Drain 移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ 48 1.20 1.21 1.21 Ready, SchedulingDisabled Ready Ready Ready $ kubectl drain ...
  • 49. GKE アップグレードの流れ (Blue/Green with Node pool) (4) 移行元 Node pool の Node を順次 Drain 移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ 49 1.20 1.21 1.21 Ready Ready Ready $ kubectl drain ...
  • 50. GKE アップグレードの流れ (Blue/Green with Node pool) (4) 移行元 Node pool の Node を順次 Drain 移行元のワークロードが再スケジュールされ、新バージョンの Node pool へ 50 1.20 1.21 1.21 Ready Ready Ready
  • 51. GKE アップグレードの流れ (Blue/Green with Node pool) (5) 古い Node pool を削除して完了 51 1.21 1.21 Ready Ready Ready
  • 52. GKE アップグレードの流れ (Blue/Green with Node pool) 補足.1 Cordon せずに Drain してしまうと... 移行元 Node pool の別の Node にスケジュールされてしまう可能性がある 52 1.21 1.21 Ready Ready Ready Ready Ready $ kubectl drain ... 1.20
  • 53. GKE アップグレードの流れ (Blue/Green with Node pool) 補足.2 新しいバージョンの Node の Ready を確認せず Drain すると... クラスタオートスケーラーが有効な場合、移行元がスケールしてしまう可能性がある 53 1.21 1.21 Ready, SchedulingDisabled NotReady... $ kubectl drain ... 1.20
  • 54. Ready GKE アップグレードの流れ (Blue/Green with Node pool) 補足.2 新しいバージョンの Node の Ready を確認せず Drain すると... クラスタオートスケーラーが有効な場合、移行元がスケールしてしまう可能性がある 54 1.21 1.21 Ready, SchedulingDisabled NotReady... $ kubectl drain ... 1.20
  • 55. サービスの可用性維持 アップグレードにあたり、可用性に影響する各種設定は忘れずに - Pod Disruption Budget - Graceful な Pod の終了 - PreStop ライフサイクルフックによるアプリケーションの正常終了処理 - terminationGracePeriodSeconds の設定見直し etc. ワークアラウンドな手段として、Drain のオプションで待ち時間を指定することも可能 - kubectl drain --grace-period=xx (sec.) 55
  • 56. 補足:Istiod と Drain の関係 Istiod がデプロイされている Node を手動で Drain するときは --delete-local-data (~1.19) / --delete-emptydir-data (1.20+) オプションが必要 - ASM の Control Plane である Istiod が Local Storage を利用しているため - Cluster Autoscaler や Node Auto-Provisioning が有効な環境では Local Storage を利用する Pod がデプロイされた Node を自動終了できなかったが、 GKE 1.22+ では以下ラベルでの指定がない限り終了可能になる - Pod -> cluster-autoscaler.kubernetes.io/safe-to-evict: “false” - Node -> cluster-autoscaler.kubernetes.io/scale-down-disabled: “true” 56
  • 57. 補足:Preemptible VM / Spot VM の利用 GKE 1.20+ では、Preemptible VM / Spot VM なノードの kubelet で Graceful Node Shutdown がデフォルト有効になっている - terminationGracePeriodSeconds は最大 25秒までしかリクエストできない - コスト削減目的で開発環境だけ Preemptible VM / Spot VM を利用、といった場合は Pod の終了に長時間を要するワークロードの可用性試験などに影響するので注意 - Evict された場合、Status が Failed となり、次回の Pod GC でクリーンアップされる https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms#termination_and_graceful_shutdown_of
  • 58. 補足:Graceful Node Shutdown Kubelet がノードの終了を検出し、Pod を安全に終了させるための機能 - Kubernetes では 1.21 からベータに昇格した機能 - ノードの終了を検知すると、systemd-logind の inhibitor-locks を利用して ShutdownGracePeriod の期間だけシャットダウンを遅らせる - ShutdownGracePeriod の期間のうち、ShutdownGracePeriodCriticalPods で指定 した期間を CriticalPods (Priority Class が system-cluster-critical or system-node-critical の Pod) の終了のために予約する 58 https://kubernetes.io/docs/concepts/architecture/nodes/#graceful-node-shutdown
  • 60. ASM (Control Plane) のアップグレード戦略 Istio のアップグレード戦略には Inplace と Canary が使えるが、 ASM の場合は原則 Canary になる ASM Control Plane ASM Control Plane mTLS Service A Service B Envoy Envoy Canary Inplace ASM Control Plane mTLS Service A Service B Envoy Envoy 1.10 1.11 1.10 1.11 60
  • 61. ASM のアップグレードツール install_asm - 従来提供されてきた ASM のインストール・アップグレードを補助するスクリプト - 後継となる asmcli の GA に伴い、サポート提供は ASM 1.11 まで asmcli - ASM のインストール・アップグレードに必須となる新しいコマンドラインツール - 今後はインストール先のプラットフォーム (e.g. Anthos on AWS / VMware, ...) を問わず asmcli で共通的なオペレーションが可能になる 61
  • 62. 補足:install_asm から asmcli への移行 確認できている主な変更点 - 実行モード(インストール or アップグレード)の自動判別ができる - デフォルトの Ingress gateway が自動挿入されなくなった - 利用にあたりフリートの登録が必須になった - リビジョンを指定したインストール・アップグレードが可能になった - install_asm の頃はリビジョンがスクリプト内に直書きされており、ダウングレードなどで 特定バージョンの ASM をインストールしたい場合はスクリプトを改変する必要があった 62
  • 63. Inplace asmcli によるインストール/アップグレード asmcli はターゲットとなるプラットフォームの状態に応じて ASM のインストール方法を自動で切り替える ASM Control Plane $ asmcli install -r asm-XXXX-X 1.10.4-asm.14 ① check Canary ② ? current ver. == asm-XXXX-X
  • 64. ASM アップグレードの流れ ASM 1.10 の環境を ASM 1.11 にアップグレードする場合を考える ASM Control Plane v1.10 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A
  • 65. ASM アップグレードの流れ ASM Control Plane v1.10 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A $ asmcli install -r asm-1112-17 ASM 1.11 をインストール - この時点では既存の ASM Data Plane には影響しない
  • 66. ASM アップグレードの流れ ASM 1.11 をインストール - この時点では既存の ASM Data Plane には影響しない ASM Control Plane v1.10 ASM Control Plane v1.11 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A
  • 67. ASM アップグレードの流れ 移行するテナントの Namespace のラベルを書き換え、Pod を再起動 - 図はテナント B が ASM 1.11 に移行した状態 ASM Control Plane v1.10 ASM Control Plane v1.11 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A
  • 68. ASM アップグレードの流れ すべての Data Plane を新バージョンの ASM に移行 ASM Control Plane v1.10 ASM Control Plane v1.11 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A
  • 69. ASM アップグレードの流れ 旧バージョンの Control Plane を削除してアップグレード完了 ASM Control Plane v1.11 mTLS Service A Service B Envoy Envoy Namespace: istio-system Namespace: tenant-B Namespace: tenant-A
  • 70. ASM アップグレード時のリソース消費 Canary Upgrade では一時的に倍のリソースが必要になることに注意 - ノードリソースや、ResourceQuota などに余裕がある状態で実施すること ASM Control Plane ASM Control Plane 1.10 1.11 70
  • 71. Gateway のアップグレード戦略の選択肢 基本は Inplace で十分、より詳細に制御したい場合は Canary も検討 Canary with external traffic shifting Inplace Canary Istio-Ingress Istio-Ingress 1.10 1.10 Istio- Ingress- canary Istio-Ingress Istio-Ingress 1.11 1.10 canary Istio-Ingress 1.11 1.10 Istio- Ingress- canary 1.10 1.11
  • 72. Gateway リソースのアップグレード ASM 1.11+ では、Gateway Injection によるアップグレードが可能 - Gateway 用の新たな Injection Template (inject.istio.io/templates=gateway) が提供される - Gateway リソースを配置する Namespace に istio-proxy のリビジョンを指定したラベルを付与 - アプリケーションの Sidecar として istio-proxy を自動挿入するときと同様の仕組みで、 Admission Webhook によるアップグレードが可能になった Ingress Gateway Egress Gateway Namespace: istio-gateway Labels: istio.io/rev= asm-1104-14 → asm-1112-17 edit restart restart https://istio.io/latest/docs/setup/additional-setup/gateway/ 72
  • 73. Gateway リソースの配置先 (ASM 1.11+) ASM 1.11+ では Gateway リソースを Control Plane とは別の Namespace に配置する構成がベストプラクティス - ただし、ASM 1.10 までを install_asm でインストールしてきたユーザの多くは istio-system 内 で Control Plane と同居した構成になっているはず - Gateway リソースを別の Namespace に移行する際は、各種関連リソースにも注意 - Network Policy, Service Entry, Virtual Service, ... ASM Control Plane Ingress Gateway Namespace: istio-system Namespace: istio-gateway Egress Gateway https://cloud.google.com/service-mesh/docs/gateways#best_practices_for_deploying_gateways
  • 74. 本番の ASM をアップグレードする前に... ツールや API バージョンの変更頻度が高いこともあり、 アップグレードするバージョン間の差分調査や影響確認の試験は 欠かさず実施することを推奨 - asmcli は install_asm と並行してサポート提供されるバージョンが ASM 1.11 のみ となるため、1.11 のうちにツールの移行を推奨 - 直近では、GKE 1.22 の API 廃止に伴い、ASM としてはパッチバージョン間で API バージョンが変更されたケースもある (ASM 1.10.3 -> 1.10.4) 74
  • 75. 補足:asmcli 実行後の不要な権限の削除 75 asmcli (および install_asm) は実行ユーザに対して強力な権限を付与する - 付与した権限は実行後も残るため、不要な権限は都度削除が必要 asmcli / install_asm が付与する権限を確認するには --verbose オプションを追加 - Kubernetes RBAC - 対象の Google アカウントに対する cluster-admin の権限が残る - Cloud IAM - 対象の Google アカウントに対する Mesh Config Admin などの権限が残る
  • 76. 補足:ASM Data Plane のアップグレード Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず - Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動 ASM Control Plane v1.10 ASM Control Plane v1.11 Service A Envoy Namespace: tenant-A Labels: istio.io/rev=asm-110x-xx 76
  • 77. 補足:ASM Data Plane のアップグレード Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず - Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動 ASM Control Plane v1.10 ASM Control Plane v1.11 Service A Envoy Namespace: tenant-A Labels: istio.io/rev=asm-110x-xx edit 77
  • 78. 補足:ASM Data Plane のアップグレード Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず - Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動 ASM Control Plane v1.10 ASM Control Plane v1.11 Service A Envoy Namespace: tenant-A Labels: istio.io/rev=asm-111x-xx edit 78
  • 79. 補足:ASM Data Plane のアップグレード Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず - Namespace のラベル istio.io/rev のリビジョンを入れ替え、Pod を再起動 ASM Control Plane v1.10 ASM Control Plane v1.11 Service A Envoy Namespace: tenant-A Labels: istio.io/rev=asm-111x-xx $ kubectl rollout restart ... 79
  • 80. 補足:ASM Data Plane のアップグレード Istio-proxy (Envoy) のアップグレードの流れは Istio と変わらず - Namespace のラベルを入れ替え、Pod を再起動 ASM Control Plane v1.10 ASM Control Plane v1.11 Service A Envoy Namespace: tenant-A Labels: istio.io/rev=asm-111x-xx injecton 80
  • 82. より大規模・複雑な環境 Anthos の各種サービスを活用することで、 より大規模・複雑な要件にも応えるアーキテクチャを構成できる - マルチプラットフォーム環境の複数クラスタの統合管理 - 異なる GCP プロジェクトのマルチクラスタメッシュ構成 - etc... 先日の Google Cloud Next '21 でも Anthos 関連で多数のリリース https://cloud.google.com/blog/ja/topics/hybrid-cloud/introducing-anthos-for-vms-and-other-app-modernization-tools 82
  • 83. アーキテクチャや運用戦略の背景にあるもの エンタープライズとひとくちに言ってもその事情は各社様々 - ハイブリッド or マルチクラウド環境 - マルチテナントの単一クラスタ or テナント別のマルチクラスタ - 組織構造、運用体制 - etc... 条件が違えば、適したアーキテクチャ、運用戦略も変わってくる 83
  • 84. エンタープライズ向けの Google Cloud 公式ユーザコミュニティ - 参加企業 140+, 登録会員 600+ - NDA ベースで事例共有やディスカッション - 分科会 - デジタル/クラウド人材育成分科会 - データ利活用分科会 - Cloud Native 分科会 エンタープライズにおける Cloud Native 技術の 活用など意見交換したい方、お待ちしています! 所属コミュニティ Jagu'e'r のご紹介 84 https://jaguer.jp
  • 85. まとめ GKE x ASM のエンタープライズ向け推奨構成を紹介 - GKE (Static) x ASM (In-cluster control plane) - アップグレードは 3か月間隔で計画することを推奨 GKE のアップグレードは Blue/Green with Node pool を推奨 - クラスタ再作成の必要に応じて Cluster Migration と使い分け ASM のアップグレードは原則 Canary Upgrade - 今後は asmcli を使ったオペレーションが必須 - Gateway リソースのアップグレードは特に可用性の事前確認を十分に
  • 86. Thank you for your attention ! 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です