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
Kubernetesモニタリングのベストプラクティス_JAWSDays2021_20210320
Search
kaojiri
March 22, 2021
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetesモニタリングのベストプラクティス_JAWSDays2021_20210320
2021/03/20 JAWS Days2021の登壇資料です。
kaojiri
March 22, 2021
More Decks by kaojiri
See All by kaojiri
コンテナ監視って何見るの?~初心者編~
kaojiri
8
6.1k
AWS SummitTokyo2019-reCap_20190620
kaojiri
1
95
JAWS-UG_SAITAMA_20190420
kaojiri
1
210
OpsJAWS-JAWSUG-KANAZAWA_20181123
kaojiri
1
320
AWS Systems ManagerとAWS Configのちょっといい話
kaojiri
3
1.8k
組織を意識したAWS構成管理プロセスを考える_20180112
kaojiri
0
830
JAWS Days2017 EXCEL構成管理からの脱却と次世代MSPとDevOps 2.0 by OpsJAWS
kaojiri
0
2k
OpsJAWS#7 20160729 SIerにおけるDevOpsの現状 ~terraformを使ったAWS開発~
kaojiri
1
1.4k
OpsJAWS#5 20160420 背伸びをしないAWS構成管理
kaojiri
0
3.1k
Other Decks in Technology
See All in Technology
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
370
EventBridge Connection
_kensh
5
690
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
180
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
100
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
2.1k
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
140
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
170
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
600
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
130
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
120
自宅LLMの話
jacopen
1
260
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
250
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Code Review Best Practice
trishagee
74
20k
Bash Introduction
62gerente
615
220k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Navigating Weather and Climate Data
rabernat
0
220
Six Lessons from altMBA
skipperchong
29
4.3k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Transcript
Kubernetesモニタリングのベ ストプラクティス Koji Aizawa(@kaojiri) | 2021/03/20
会澤 康二 - Solutions Consultant at New Relic 国産SIerに新卒入社し、プロジェクトマネジメントを叩き込まれる その後、自社サービスビジネス立ち上げ支援、クラウドネイティブ開発、基盤の設計・
構築などの案件支援に従事し、 New RelicにJoin 趣味: ランニング、登山、サッカー観戦、畑 AWS Solutions Architect Pro Certified Kubernetes Administrator • facebook: https://www.facebook.com/koji.aizawa.7 • Twitter : @kaojiri • speakerdeck: https://speakerdeck.com/kaojiri • New Relic ブログ: https://blog.newrelic.co.jp/author/kaizawa/
本セッションのゴール • なんとなくKubernetesを使い始めちゃった、ということがないように、 Kubernetesって何?から理解する • よくある課題を理解することで、なぜそんなことやるのか?の本質を理解できるようになる ◦ 具体的にどうやるかは置いておいて • オブザーバビリティ!!
※本セッションでお話しないこと • ECS / EKSの違い。どちらを使うべき? • どんなサービス・機能をどのように使えばいいか、という類の話 ◦ そのままコピペすればいい、レベルの情報
Agenda 1. Kubernetesとは? a. コンテナの課題とオーケストレーションの必要性 b. KubernetesアーキテクチャとEKS c. Kubernetes運用でよくある課題 2.
Kubernetesのオブザーバビリティを実現するために抑えるべきポイント 3. Kubernetesモニタリングで利用するサービス群 4. まとめ
Kubernetesとは?
仮想マシンとコンテナの違い 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
コンテナのメリット(可搬性) 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
コンテナの課題 本番環境では各コンポーネントを冗長化するのが基 本 • コンテナの障害対策 ◦ 複数台のコンテナを起動 ◦ ロードバランサーでアクセス分散 •
サーバの障害対策 ◦ 各コンテナは別々のサーバで起動 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
コンテナオーケストレーションとは? 複数のコンテナ(サービス)を”よしな”に配置し、可用性、負荷分散、 認証認可、アクセス制御などのガバナンス統制を効かせることが可能 結構たくさんある(あった) • Docker Swarm • CoreOS fleet
• Rancher Labs Rancher • Mesos Marathon • Google Borg -> CNCF kubernetes 等 主導権争いの末、kubernetesが事実上のデファクトに CNCFもk8sをGraduateに
None
Kubernetesアーキテクチャ(概要) 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
EKSはKubernetesコントロールプレーンをマネージドに 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
データプレーンはどうするの? 出典:『Kubernetes on AWS』(リックテレコム刊 2020年)
kubectl テキストベースで豊富な情報取得、可視化。
Kubernetes運用でよくある課題 使う側からすると結構簡単 VS 運用する側からすると結構難しい 1. Podが乱立してクラスターリソースが枯渇する 2. マイクロサービス間のパフォーマンス状況がわからない 3. 何を異常と見なすべきかわかりづらい
▪ ノードの状態、Podの状態がわかりづらい
オブザーバビリティ(可観測性) システムのメトリクス・イベント・ ログ・トレースのデータを リアルタイムに取得し続け、 常にシステム全容の 状態把握と改善ができる状態 by New Relic
Kubernetesのオブザーバビリティを 実現するために抑えるべきポイント
Kubernetes運用でよくある課題 使う側からすると結構簡単 VS 運用する側からすると結構難しい 1. Podが乱立してクラスターリソースが枯渇する 2. マイクロサービス間のパフォーマンス状況がわからない 3. 何を異常と見なすべきかわかりづらい
▪ ノードの状態、Podの状態がわかりづらい 再掲
1. Podが乱立してクラスターリソースが枯渇する クラスター全体だけでなく、ノードやPod(Container) の負荷状況とキャパシティを把握する Requests/Limitsを確実に設定することでノードキャ パシティを正確に把握できるようにする 参考(ブログ):Kubernetesクラスターのキャパシティ管理を行うためにRequestsとLimitsを確実に設定する方法
2. サービス間のパフォーマンス状況がわからない マイクロサービスになればなるほど、ひとつのトランザクションに関わるサービス数が増える ボトルネックはどこ?いちいち調べるの辛い・・・ 分散トレーシングでしっかり可視化する 合わせてノードレベルのパフォーマンス( Network performance / DiscIO等)傾向を把握する
実測値で何かを見るのではなく、頭打ちになっているかどうかを確認 する 境界となるメトリクスを可視化し、問題切り分けを効率化する • AWSのELB関連のメトリクス etc... Application Performance
3. 何を異常と見なすべきかわかりづらい Kubernetesはダイナミックにステータスが変更していくため、単体のメトリクスだけで発砲するとノ イズとなりやすい 問題が継続していることを検知する、かつ、継続時間をどの程度とするかが重要 検知する観点は「キャパシティ・リソース」と「異常検知」に関連するものがメ イン サービス全体にどの程度の影響が出ているかの相関関係を把握することがもっとも重要 This is
Observability とはいえ、Podの異常ステータスは正確に検知する CrashLoopBackOff / OOMKilledなど、クリティカルになりやすいものをピックアップ
Kubernetesモニタリングで 利用するAWSサービス
利用するAWSサービス群 No. ポイント 利用サービス 1 Podが乱立してクラスターリソースが枯渇する ・CloudWatch - Dashboard ・CloudWatch
- Metrics ・CloudWatch - Logs ・CloudWatch - Container Insights ・CloudWatch - Alarm 2 マイクロサービス間のパフォーマンス状況が わからない ・AWS X-Ray ・CloudWatch - ServiceLends - Service Map, Traces ・AWS Distro for OpenTelemetry 3 何を異常と見なすべきかわかりづらい No1と同じ
Prometheus/Grafanaもマネージドに!選択肢が広がる! https://aws.amazon.com/jp/prometheus/ https://aws.amazon.com/jp/grafana/
ちょっとだけ宣伝
Kubernetes管理もNew Relicで Kubernetes Cluster Explorer • 色分けによる異常を視覚化 • リソース使用量を可視化 •
Kubernetesだけでなく、アプリケー ションまで一気通貫な原因追求 ◦ APM連携 ◦ ログ連携 ◦ Distributed Tracing連携 kubectlコマンドを叩かなくても、ノードやPodの状況がひ と目で分かります。問題箇所から深掘りしていくことで、 アプリケーションレベルでの問題までトレース可能
まとめ
まとめ 1. Kubernetesとは? 2. Kubernetesのオブザーバビリティを実現するために抑えるべきポイント a. Podが乱立してクラスターリソースが枯渇することを防止しよう b. マイクロサービス間のパフォーマンス状況を可視化しよう c.
単体の事象にこだわりすぎず、相関関係をみながら一定時間異常な状態が継続した場合にア ラートしよう 3. Kubernetesモニタリングで利用するサービス群 a. CloudWatchフル活用 b. Prometheus / Grafanaも待ち遠しい c. New Relicもよろしくね
Kubernetesはサービスのイチ構成要素 サービス全体状況を把握しつつ Kubernetesクラスター状態 ”も” 把握・管理することが最も重要
This is “Observability” of Kubernetes
None