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 at Z Lab
Search
Takashi Kusumi
September 25, 2019
Technology
7
1.3k
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.4k
Unit Testing for Prometheus Rules
tksm
6
2.5k
Recap: Securing Kubernetes with Admission Controllers
tksm
2
1.4k
Istio Mutual TLS
tksm
0
590
Debugging Applications in Kubernetes
tksm
16
3.9k
Kubernetes with Prometheus
tksm
5
2.3k
Kubernetes v1.7 の主な変更点 / Kubernetes v1.7 features
tksm
0
1.5k
kubectl apply の仕組み / How kubectl apply works
tksm
1
9.5k
Prometheus による Kubernetes モニタリングの基礎 / Kubernetes monitoring with Prometheus
tksm
2
2.9k
Other Decks in Technology
See All in Technology
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
610
メールセキュリティの DMARC周りの設定を少しずつ設定してみたお話
miu_crescent
1
260
スタートアップの技術顧問を3年間続けて発生した事と気付き
biwakonbu
0
150
TransitGatewayの基礎
toru_kubota
0
230
マルチアカウント環境への発見的統制の導入
ch1aki
1
1.3k
The CloudCompare project by Dr. Daniel Girardeau-Montaut
kentaitakura
0
490
オブザーバビリティの Primary Signals
onk
PRO
0
530
Let's get started with Ruby && Rails Tips
sinsoku
0
190
株式会社EventHub・エンジニア採用資料
eventhub
0
1.9k
Four keys改善の取り組み事例紹介
sansantech
PRO
2
220
〜小さく始めて大きく育てる〜データ分析基盤の開発から活用まで
kniino
0
1.8k
ビジネスとエンジニアリングの接合点 そしてコード品質がそこに及ぼす影響 v1.1 / The Intersections of Business and Engineering, and The Impact of Code Quality There (v1.1)
mtx2s
11
2.4k
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
118
38k
Teambox: Starting and Learning
jrom
127
8.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Writing Fast Ruby
sferik
619
60k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
4 Signs Your Business is Dying
shpigford
175
21k
How to train your dragon (web standard)
notwaldorf
71
5.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
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! ご興味ある⽅は、ゼットラボ社員に直接ご連絡ください