Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Z Lab の教育への取組 / Cloud Native Education Efforts ...
Search
Takashi Kusumi
September 25, 2019
Technology
7
1.4k
Z Lab の教育への取組 / Cloud Native Education Efforts at Z Lab
Cloud Native Deep Dive #5
https://deepcn.connpass.com/event/143049/
Takashi Kusumi
September 25, 2019
Tweet
Share
More Decks by Takashi Kusumi
See All by Takashi Kusumi
Recap: eBPF セッションつまみ食い / eBPF sessions @ KubeCon EU 2023
tksm
1
3.6k
Unit Testing for Prometheus Rules
tksm
6
2.8k
Recap: Securing Kubernetes with Admission Controllers
tksm
2
1.5k
Istio Mutual TLS
tksm
0
680
Debugging Applications in Kubernetes
tksm
16
4k
Kubernetes with Prometheus
tksm
5
2.4k
Kubernetes v1.7 の主な変更点 / Kubernetes v1.7 features
tksm
0
1.5k
kubectl apply の仕組み / How kubectl apply works
tksm
1
9.7k
Prometheus による Kubernetes モニタリングの基礎 / Kubernetes monitoring with Prometheus
tksm
3
3k
Other Decks in Technology
See All in Technology
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
190
いざ、BSC討伐の旅
nikinusu
2
780
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.5k
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Facilitating Awesome Meetings
lara
50
6.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Writing Fast Ruby
sferik
627
61k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Embracing the Ebb and Flow
colly
84
4.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Transcript
ゼットラボの教育への取り組み Cloud Native Deep Dive #5 教育 Takashi Kusumi <
[email protected]
>
アジェンダ ▶ カスタマーサクセスチーム ▶ 教育への取り組み + ワークショップ、オフィスアワー etc ▶ ノウハウ獲得のための取り組み
+ Changelog 調査、アドオン提供 etc ▶ 課題 2
カスタマーサクセスチーム
ゼットラボ株式会社 / Z Lab Corporation ▶ 2015年に設⽴されたヤフー株式会社の 100% ⼦会社 ▶
ヤフーのインフラ課題に対して R&D でソリューション提供 ▶ Kubernetes as a Service を開発・提供 4
カスタマーサクセスチーム ▶ 利⽤者への導⼊推進 + 導⼊サポート + 技術検証 + 障害調査 ▶
クラスタアドオンの提供 + CoreDNS, Prometheus, Grafana など ▶ 技術調査 5
教育への取り組み
Kubernetes ワークショップ 7 ▶ 知識編のセミナー(2h)とワー クショップ(3h)の 2 回を開催 ▶ 引き継ぎを⾏い定期開催中
+ minikube で実施
Kubernetes ワークショップ ▶ 最初は kubectl run による命令的なデプロイを実施 ▶ その後代表的なリソース(Deployment, Ingress
など) を説明 + 宣⾔的な管理で説明 + リソースの概要⾃体はセミナー編でも紹介 ▶ ⼤変なところ + Pod / ReplicaSet / Deployment の関係 + Ingress / Service の関係 + セットアップ周り (各種バージョン、認証) 8
実践編セミナー 9 プロダクションに向けて必要な知識を紹介
実践編セミナー 1. Dockerfile のベストプラクティス 2. Production Ready な Pod を作る
3. アプリケーションとクラスタのバージョンアップに備える 4. Pod で動的データを扱う 5. 宣⾔的な管理について 6. 開発中のログの確認⽅法 7. ドキュメントの紹介 10
オフィスアワー ▶ 隔週で約2時間のオフィスアワーを実施 ▶ 相談例 + ボトルネック分析 + クラスタ構成 +
アプリケーション構成 + Kubernetes の質問 (e.g. request, limit 使い分け) 11
ドキュメント提供 アドオンの利⽤ガイドやベストプラクティスなどを提供 12
ドキュメント例 ▶ メトリクス(Prometheus)の設定⽅法 ▶ Ingress の設定⽅法 ▶ キャパシティプランニングに必要な情報 ▶ プロダクション向けのマニフェストの書き⽅
▶ Graceful Shutdown について ▶ 複数の環境を Namespace で管理 13
プロジェクトサポート ▶ いくつかの利⽤者のプロジェクトを直接サポート + ノウハウを広めてもらうハブになることも期待 ▶ 基本は Slack ベースで対⾯やビデオ会議などを適宜実施 ▶
サポート内容の例 + アーキテクチャ相談 + 負荷試験 + マニフェストレビュー 14
マニフェストのポリシーの提供 (予定) マニフェストの注意点を conftest のポリシーとして提供予定 e.g. 最新の API Version の利⽤、Probe
の設定、latest タグの⾮推奨 15
マニフェストのポリシーの提供 (予定) 16 ポリシーは Open Policy Agent のポリシー⾔語 Rego で記述
ノウハウ獲得への取り組み
Kubernetes ChangeLog 調査 ▶ マイナーバージョン + 複数⼈で調査し社外公開 + アドオンの管理もあるため、 リリースマネージャーを置く
▶ パッチバージョン + 毎パッチを社内⽤に影響調査 18
アドオンの開発・管理 ▶ クラスタのアドオンを提供 + CoreDNS, Prometheus, Grafana など + ValidationWebhook
や client-go を使ったコントローラーに よるコンポーネントも提供 ▶ ⾮互換の変更は Kubernetes のマイナーに合わせて管理 ▶ ⾃動でアドオンをアップデートする仕組みを構築 + アップデータ本体は別の仕組みでデプロイしている 19
アドオン: Grafana Dashboard 20
障害調査 21 ▶ 利⽤者からエスカレーションされた問題の調査 ▶ 利⽤者が増えてきたことにより顕著化する問題も増えてた ▶ 調査例 + Node
のリソース枯渇時の問題 (eviction-manager の挙動) + Pod の作成のタイムアウト時にリトライされない問題 + 細かい設定ミス (iptables のロックのマウント漏れなど)
Kubernetes Failure Stories 22 Zalando ࣾͷ @hjacobs ͞Μ͕·ͱΊͨ Kubernetes ͷࣦഊஊू
https://github.com/hjacobs/kubernetes-failure-stories
技術調査・検証 ▶ コミュニティの情報やユーザの問い合わせを元に調査・検証 ▶ 調査例 + WebSocket 同時接続数の検証 + Grafana
loki の評価・検証 + Graceful Shutdown のサンプル実装 + Java のコンテナ対応 + CI / CD 検証 23
課題
利⽤者側での問題の切り分け ▶ 問題がKubernetes などインフラ側なのかアプリケーション側なのかの切り分 けが難しい + パフォーマンス劣化やタイムアウトなど ▶ Kubernetes に載せるタイミングでアプリも刷新するケースも多い
▶ 権限による制限も課題 (kubectl exec など) ▶ 今後の対策 + 切り分け⽅のドキュメントの提供 + メトリクス、ダッシュボードの拡充 + APM の導⼊ 25
ドキュメント更新の認知 ▶ ドキュメントの更新や新機能を認知してもらうのが難しい + 新機能の周知もドキュメントのリリースノートで⾏っている ▶ 今後の対策 + 検索性の向上 +
より積極的な周知 26
必要な知識の範囲が広い ▶ 周辺技術が同時に多く変わる可能性が⾼い + Linux コンテナやKubernetes ⾃体の知識 + モニタリング (e.g.
Prometheus) + アプリケーションの対応 (e.g. Graceful Shutdown) + CI/CD ▶ 今後の対策 + ドキュメントやセミナーの拡充 + 事例共有の機会を増やす 27
まとめ
まとめ ▶ Kubernetes ワークショップ ▶ 実践編セミナー ▶ オフィスアワーの実施 ▶ ドキュメント提供
▶ プロジェクトサポート ▶ マニフェストポリシー提供 29 教育への取り組み ノウハウ獲得への取り組み ▶ Kubernetes Changelog 調査 ▶ アドオンの開発・管理 ▶ 障害調査 ▶ 技術調査・検証
30 We are hiring! ご興味ある⽅は、ゼットラボ社員に直接ご連絡ください