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.2k
AWS SummitTokyo2019-reCap_20190620
kaojiri
1
96
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.2k
Other Decks in Technology
See All in Technology
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
290
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
570
公式ドキュメントの歩き方etc
coco_se
1
120
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
430
穢れた技術選定について
watany
17
5.6k
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.6k
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
120
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
930
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
AICoEでAIネイティブ組織への進化
yukiogawa
0
200
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
410
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
450
Featured
See All Featured
Paper Plane
katiecoart
PRO
2
52k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
HDC tutorial
michielstock
2
750
How to Ace a Technical Interview
jacobian
281
24k
Crafting Experiences
bethany
1
220
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
340
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Ethics towards AI in product and experience design
skipperchong
2
330
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
250
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
350
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