Kubernetes as a ServiceをProduction環境で2年活用し、直面してきた課題と解決策 / YJTC19 in Shibuya A-1  #yjtc

3.4K Views

December 12, 19

スライド概要

ヤフーではKubernetes as a Service(KaaS)を使いオンプレミスのKubernetes(K8s)環境を構築し、活用しています。KaaSは約2年ほど前からProduction環境で稼働させ、現在400を超えるK8s Clusterを管理しています。
本セッションでは、このようなオンプレミスのKaaSを活用し、運用、開発チームそれぞれがどのような利益を得られたか、また、このような大規模数のCluster管理を行う上で直面してきた課題とその解決までのプロセスをご紹介しました。

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Kubernetes as a ServiceをProduction環境で 2年活用し、直面してきた課題と解決策 テクノロジーグループ システム統括本部 クラウドプラットフォーム本部 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 勝田広樹

2.

勝田 広樹 テクノロジーグループ システム統括本部 クラウドプラットフォーム本部 Kubernetes as a Serviceの保守運用をやってます ヤフー7年目 Kubernetes2年 趣味はゲームと旅行 写真はエアーズロックに行った時 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

3.

質問 1. Kubernetesを利用している方 2. 前回のYJTCに参加していただいた方 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

4.

このセッションについて Kubernetes as a Service(KaaS)をProduction環境で2年活用し 直面してきた課題とその解決策をお話します Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

5.

アジェンダ 1. ヤフーのKaaS 2. 直面した課題 3. まとめと今後 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

6.

1. ヤフーのKaaS 2. 直面した課題 3. まとめと今後 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

7.

ヤフーのKaaS 2年間のクラスタ数推移 Kubernetesを本番利用し始めてから、クラスタ数は日に日に増加 50 5 2017/08 2018/07 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 200 2019/01 2019/11

8.

ヤフーのKaaS 2年間のクラスタ数推移 Kubernetesを本番利用し始めてから、クラスタ数は日に日に増加 500 50 5 2017/08 2018/07 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 200 2019/01 2019/11

9.

ヤフーのKaaS ヤフーのKubernetes as a Service Kubernetes as a Serviceにより管理を自動化 Kubernetes as a Service Custom resource + Custom controller Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. OpenStack API Kubernetes Cluster Kubernetes Cluster Kubernetes Cluster

10.

ヤフーのKaaS Kubernetes Clusterの構成 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

11.

ヤフーのKaaS 詳しくはKubeCon China 2019の発表をご参照ください KubeCon China 2019 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. https://youtu.be/FqYN6ZACAnc

12.

ヤフーのKaaS ヤフーのKubernetes利用の規模 利用チーム ・・・ 約150 K8s Cluster Kubernetes Kubernetes 合計node Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. Kubernetes ・・・ 500+ ・・・8000+

13.

ヤフーのKaaS ヤフーのKaaSはZ Lab製 Z Labで開発し、ヤフーのKaaSチームで保守運用 ヤフー KaaSチーム ヤフー サービス開発チーム Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. Z Lab

14.

ヤフーのKaaS ヤフーのKaaSはZ Lab製 Z Labで開発し、ヤフーのKaaSチームで保守運用 ヤフー KaaSチーム ヤフー サービス開発チーム Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. Z Lab

15.

ヤフーのKaaS 2年間の変化 利用者の増加 → システムの大型化 稼働サービスの多様化 → サポート領域の拡大 影響は様々な階層に Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. アプリケーション 開発者寄り container K8s Cluster KaaS machine 運用者寄り

16.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

17.

アジェンダ 1. ヤフーのKaaS 2. 直面した課題 3. まとめと今後 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

18.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

19.

直面した課題 Kubernetesの知見<課題> - Kubernetesの有効的な使い方がわからない - 例 - updateの際にサービスが落ちる - 最新のdocker imageが反映されない 似た問い合わせが多数発生 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

20.

直面した課題 Kubernetesの知見<解決法> - 定期的な社内セミナーを開催(内容を順次拡大) - 隔週で対面で相談できる会を実施 - 別拠点の利用者とも直接やりとり - 最新のK8sを常に追い続ける - PaaS/FaaS on Kubernetes の検討 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

21.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

22.

直面した課題 サポート範囲の不毛な拡大<課題> - ヤフーでは利用者が自由なタイミングでKubernetes versionをupdate可能 - 多様なサービス - 提供バージョン - KaaSのサポート範囲 - 提供デフォルトアプリケーションの動作保証 - Kubernetesは3ヶ月ごとにマイナーバージョンが上がる Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

23.

直面した課題 サポート範囲の不毛な拡大<課題> 理想 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

24.

直面した課題 サポート範囲の不毛な拡大<課題> 利用範囲 理想 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

25.

直面した課題 サポート範囲の不毛な拡大<課題> 理想 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

26.

直面した課題 サポート範囲の不毛な拡大<課題> 理想 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

27.

直面した課題 サポート範囲の不毛な拡大<課題> 現実(以前) 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

28.

直面した課題 サポート範囲の不毛な拡大<課題> 現実(以前) 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

29.

直面した課題 サポート範囲の不毛な拡大<課題> 現実(以前) 利用範囲 New サポート範囲 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. K8s version

30.

直面した課題 サポート範囲の不毛な拡大<課題> - version upが行えていないclusterの存在によりサポート範囲が広がってしまう - サービス開発者はK8sバージョンの早いライフサイクルに追従する必要がある Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

31.

直面した課題 サポート範囲の不毛な拡大<解決法> - 定期的にサポート範囲の最低version clusterの一斉updateを実施 - addon等自動で適切なversionが適用される(addon-manager) - develop環境→production環境の順で実施(1チーム複数clusterを持っているか らこその安全なupdate) - 最新versionもより早く提供可能に Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

32.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

33.

直面した課題 過剰なリソース要求<課題> アプリケー ション 余剰リソース VM 余剰リソース アプリケー ション pod cluster KaaS machine Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. machine

34.

直面した課題 過剰なリソース要求<課題> アプリケー ション 余剰リソース VM 余剰リソース アプリケー ション pod cluster KaaS machine Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. machine

35.

直面した課題 過剰なリソース要求 <解決法> 実利用している リソース量を可視化 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

36.

過剰なリソース要求<解決法> B e f o r e 余剰リソース アプリケー ション pod cluster KaaS machine Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. A f t e r アプリケー ション pod cluster KaaS machine 余剰リソース

37.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

38.

直面した課題 マイクロサービス化の弊害<課題> ?? これまでの調査では稼働アプリケーションを見ていた マイクロサービス化により、開発はしやすくなったが 調査をする時にはどこで何が起きているか把握しづらくなった アプリケー ション Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. マイクロ サービス マイクロ サービス マイクロ サービス マイクロ サービス マイクロ サービス

39.

直面した課題 マイクロサービス化の弊害<課題> - 低コストで調査可能にしたい - ヤフーの他のプラットフォームでも同様の技術で観測性を上げたい Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

40.

直面した課題 マイクロサービス化の弊害<解決法> Dynatraceの導入 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

41.

直面した課題 マイクロサービス化の弊害<解決法> Dynatraceにより - マイクロサービス調査のためにトレース用のfunctionの埋め込み - 各サービスがどのように呼び出しあっているかの可視化 - パッケージごとの処理時間 addonを入れると 全て自動で実施 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

42.

直面した課題 マイクロサービス化の弊害<解決法> 事例1 4 40 40 Dynatraceで分析すると 改善ポイントが浮かび上がった 1. バックエンドAPIを並列呼び出 ししていない 2. バックエンドAPIそのもののパ フォーマンスが高くない Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. PerformGo! Tokyo ヤフーのクラウドネイティブへの 取り組みとDynatraceの導入 より

43.

直面した課題 マイクロサービス化の弊害<解決法> 事例1 4 0 • • Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. PerformGo! Tokyo ヤフーのクラウドネイティブへの 取り組みとDynatraceの導入 より

44.

直面した課題 マイクロサービス化の弊害<解決法> 事例2 API応答速度 。」 CPU使用時間 PerformGo! Tokyo ヤフーのクラウドネイティブへの 取り組みとDynatraceの導入 より Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

45.

直面した課題 マイクロサービス化の弊害<解決法> 事例2 ログを埋め込む調査に比べて 原因特定の時間を短縮できた PerformGo! Tokyo ヤフーのクラウドネイティブへの 取り組みとDynatraceの導入 より Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

46.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

47.

直面した課題 大量ログの集約<課題> ログ Kubernetes Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 総合ログ管理 PF

48.

直面した課題 大量ログの集約<課題> ログ Kubernetes Kubernetes Kubernetes 大量の エラーログ Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 総合ログ管理 PF

49.

直面した課題 大量ログの集約<解決法> ユーザが利用しやすい 形での出力も検討中 Kubernetes Kubernetes ログ Kubernetes 爆発的なログ も流量制限 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 総合ログ管理 PF

50.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

51.

直面した課題 セキュリティ<課題> - ヤフーではVM環境の脆弱性を自動検知していた - Kubernetes環境では人の手がかかり過ぎている現状、別の仕組みが必要 - 何かあってからでは遅い。未来の課題に先に取り組んでおく container Kubernetes machine Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. container registry

52.

直面した課題 セキュリティ<解決法> sysdigの導入 - システムコールから不審な挙動を検知する - containerの脆弱性検知 - container imageの脆弱性検知 - Falcoの活用 - Kubernetes CIS Benchmarkのサポート Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

53.

直面した課題 セキュリティ<解決法> Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

54.

1. ヤフーのKaaSについて 2. 直面した課題 3. まとめと今後 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

55.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

56.

ヤフーのKaaS 直面してきた課題たち 開発者寄り アプリ ケーション container K8s Cluster KaaS/ machine 運用者寄り マイクロ サービス化 の弊害 K8sの 知見 サポート範囲 の不毛な拡大 大量ログ の集約 過剰なリソース要求 Production 稼働当初 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 現在 セキュ リティ

57.

まとめと今後 まとめと今後 - ヤフーのKaaSでは大規模な利用に対する課題も一つ一つ解決してきている - オンプレならではのフレキシブルさ、ヤフーならではの技術 - ヤフーのさらなる新しいサービス開発に注力できるPFへ - 今後はさらに利用シーンを拡大 - 数百nodeの大規模cluster - AIなど、CPUドリブンなサービス向けcluster Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

58.

UPDATE KaaS UPDATE JAPAN Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.

59.

Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.