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.5k
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
7
3k
Recap: Securing Kubernetes with Admission Controllers
tksm
2
1.5k
Istio Mutual TLS
tksm
0
730
Debugging Applications in Kubernetes
tksm
16
4.2k
Kubernetes with Prometheus
tksm
5
2.5k
Kubernetes v1.7 の主な変更点 / Kubernetes v1.7 features
tksm
0
1.6k
kubectl apply の仕組み / How kubectl apply works
tksm
1
9.8k
Prometheus による Kubernetes モニタリングの基礎 / Kubernetes monitoring with Prometheus
tksm
3
3k
Other Decks in Technology
See All in Technology
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
270
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1k
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
330
Wasm元年
askua
0
140
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
220
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
6
720
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
420
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
200
解析の定理証明実践@Lean 4
dec9ue
0
170
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
170
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
220
Model Mondays S2E02: Model Context Protocol
nitya
0
220
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
How GitHub (no longer) Works
holman
314
140k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
What's in a price? How to price your products and services
michaelherold
246
12k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Docker and Python
trallard
44
3.4k
The Language of Interfaces
destraynor
158
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Designing for humans not robots
tammielis
253
25k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
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! ご興味ある⽅は、ゼットラボ社員に直接ご連絡ください