Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetesって何? -大規模なKubernetesを運用するKubernetes a...

Kubernetesって何? -大規模なKubernetesを運用するKubernetes as a Serviceチームの話を添えて-

本発表では、まずLINEヤフーについて簡単に説明した後、アプリケーションやシステムを外部に公開する際の負荷分散と耐障害性の重要性について話します。これらの課題を解決するための技術として、Kubernetesとコンテナ技術に焦点を当て、その基本的な概念と利点を解説します。 さらに、Kubernetes運用の難しさについて説明し、開発者が本来のアプリ開発に集中できるよう支援するLINEヤフーのKaaSチームについて紹介します。特に、運用中に直面した問題(リソース不足によるアラート対応)とその自動化への取り組みに焦点を当て、具体的な改善例とその効果について紹介します。

LY Corporation Tech

September 20, 2024
Tweet

More Decks by LY Corporation Tech

Other Decks in Technology

Transcript

  1. © LY Corporation Kubernetesって何? LINEヤフー株式会社 SIグループクラウド統括本部Cloud Native本部 Shuichi Inoue Yudai

    Tonoyama Kubernetesを大規模に運用する Kubernetes as a Serviceチームの話を添えて
  2. © LY Corporation 井上 秀一 / Shuichi Inoue Hideichi LINEヤフー株式会社

    SIグループクラウド統括本部 Cloud Native本部 # 経歴 2024年4月〜 LINEヤフー株式会社 新卒入社 2024年7月〜 Kubernetes as a ServiceチームでOJT中 # 趣味 雑談 / ドライブ / 洋画&ドラマ / 自宅サーバ # 一言 KubernetesやSREに興味があります © LY Corporation 2
  3. © LY Corporation 3 殿山 雄大 / Yudai Tonoyama /

    トムヤムクン LINEヤフー株式会社 SIグループクラウド統括本部 Cloud Native本部 # 経歴 2024年4月〜 LINEヤフー株式会社 新卒入社 2024年7月〜 Kubernetes as a ServiceチームでOJT中 # 趣味 焚き火 / アニメ / 自宅サーバ # 一言 お刺身(OpenStack VM)の上にたんぽぽ (Kubernetes)を載せる仕事をしています © LY Corporation
  4. © LY Corporation K8sの前に「Container(コンテナ)」を理解する 12 誰もが最初にやるデプロイ方法: OS上で直接動かす! 環境依存: ホストOS, CPUアーキテクチャ次第

    メンテナンスコスト: OSや他Appのpkgアップデート 依存関係: App同士の依存関係管理 ポータビリティ: お引越しや移動が困難 性能: オーバヘッドがない
  5. © LY Corporation K8sの前に「Container(コンテナ)」を理解する 13 仮想マシン(VM)ならどうだろうか? 環境依存: VMのOSを選択 ポータビリティ: VM毎可搬はできる

    依存関係: App同士の依存関係が切り離せる リソース柔軟性が低い: リソースの変更が大変 性能: OSの二重化によるオーバーヘッド 要件次第では全然あり Ex) Linux Kernelを分離できる
  6. © LY Corporation K8sの前に「Container(コンテナ)」を理解する 14 Containerならどうだろうか? 環境依存: Containerのベースのイメージを選択 ポータビリティ: Container

    imageとして公開 依存関係: Container単位で隔離 メンテナンスコスト: Container内だけ考えれば良い オーバーヘッド: Linuxの仕組みを利用しているので最小限
  7. © LY Corporation K8sの前に「Container(コンテナ)」を理解する 20 Kubernetesを導入すると...? Kubernetesを介して コンテナをデプロイ Ex) •

    Cluster上でPod 6個 • 計算機1にはPod 2個 • 計算機2にはPod 3個 • 計算機3にはPod 1個 みたいなこともできる
  8. © LY Corporation Kubernetesの運用では様々な面を考 慮しないといけない... 23 • バージョンアップデート • モニタリング・ロギング

    • セキュリティ • リソース管理…etc アプリ開発者が、Kubernetesを詳しく調べる時間はない... どうすればいいのか...
  9. © LY Corporation そこで! Kubernetes as a Service(KaaS) 24 「KaaS」とは、アプリ開発者が簡単かつ迅速にKubernetesを使い、

    デプロイできるプラットフォームのこと。 Amazon EKS(Elastic Kubernetes Service) GKE(Google Kubernetes Engine) AKS(Azure Kubernetes Service)など パブリッククラウドでいうところのKaaSは... K8sの運用を丸投げ メリットだけ享受 札束とトレードオフ
  10. © LY Corporation 27 ZCP(ZLab Container Platform)とは • 開発者の高い生産性のためセキュアで運用が簡単な k8s

    クラスタを提供 • 確保されたセキュリティ(監査、脆弱性対応) • SREのプラクティスを簡単に実現 (o11y、アラーティング、運用自動化) 全社のサービスが利用する極めて重要なプラットフォーム 弊社のプライベート K8s as a Service(KaaS) 99.99 プラットフォームの稼働率 %
  11. © LY Corporation 良いところ 大変なところ 28 ZCPチームの良いところと大変なところ 元Yahoo! JAPANのKaaSチーム。「LINEヤフーが世界の変化に爆速で適応できる」が理念。 Kubernetesプラットフォームの

    開発、運用を経験できる 巨大なプラットフォームを運用するため の知見を得られる アラート担当のときにアラートが発生し たときは対応する必要がある KubernetesとGo言語の深い知識が必要
  12. © LY Corporation Containers 996,000+ Kubernetes Clusters 1,400+ VMs 57,000+

    29 ZCPの規模感 LINEヤフー全体では、2,400+以上のKubernetes Clusterを運用
  13. © LY Corporation そもそもZCPって何...? 35 KubernetesがKubernetesを管理している ZCPチーム 顧客 チーム プロダクト

    Cluster (子)のマニフェストがある - Kubernetesのバージョン - 監視や認証認可用のPod
  14. © LY Corporation そもそもZCPって何...? 36 KubernetesがKubernetesを管理している ZCPチーム 顧客 チーム プロダクト

    Cluster (子)のマニフェストがある - Kubernetesのバージョン - 監視や認証認可用のPodなど
  15. © LY Corporation そもそもZCPって何...? 37 KubernetesがKubernetesを管理している ZCPチーム 顧客 チーム プロダクト

    Cluster (子)のマニフェストがある Cluster (子)に反映される - Kubernetesのバージョン - 監視や認証認可用のPodなど
  16. © LY Corporation 定型作業 不定期発生 アラート 10件 ZCP アラート総数 93件

    39 KaaSとしてZCPを運用している上で直面した課題
  17. © LY Corporation 自動化の流れ 60 • 異常なPod情報の抽出 • スケール: 元々あるのを良い感じに流用

    • 顧客連絡: 利用者情報取得&メール送付 • アラートを自動で閉じる 単純なリソース不足起因の場合、 ノード数を増やす(スケールアップ)だけで全て解決!
  18. © LY Corporation 補足: オートスケール&完全自動化しないの? 76 結論: できるが、そこまで大きなメリットがない - 完全な自動化

    - やろうとすると2ヶ月くらいかかる - 実装・運用するコストとメリットが微妙 - オートスケール - 新たな運用上の課題の懸念(スケールインする際など) - 失敗した際の無限スケール -> 全社に影響出る可能性あり 2ヶ月かけて27時間->0分にするか or 3週間で27時間->6分 現在やるべき課題と相談しつつ・割ける工数と相談した結果