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
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
Search
Isao Shimizu
December 18, 2023
Technology
2
380
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
2023年12月18日(月)
3-shake SRE Tech Talk #8 LT
https://3-shake.connpass.com/event/302755/
Isao Shimizu
December 18, 2023
Tweet
Share
More Decks by Isao Shimizu
See All by Isao Shimizu
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
240
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
980
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
520
約10年間MIXIのインフラを 支えてきたPagerDutyの活用事例 / PagerDuty on Tour 2024
isaoshimizu
6
1.2k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
2
1.8k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
18
9k
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
12
3.1k
全世界1,800万人が利用する「家族アルバム みてね」におけるNew Relic活用法 / FutureStack Tokyo 2023
isaoshimizu
1
590
『家族アルバム みてね』で計測しているSLIの事例 / SLI as measured in FamilyAlbum
isaoshimizu
4
790
Other Decks in Technology
See All in Technology
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
3
130
SRE新規立ち上げ! Hubbleインフラのこれまでと展望
katsuya0515
0
160
alecthomas/kong はいいぞ
fujiwara3
6
1.4k
Mambaで物体検出 完全に理解した
shirarei24
2
210
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
200
MCP認可の現在地と自律型エージェント対応に向けた課題 / MCP Authorization Today and Challenges to Support Autonomous Agents
yokawasa
5
1.7k
KubeCon + CloudNativeCon Japan 2025 Recap
donkomura
0
160
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
8
2k
AI関数が早くなったので試してみよう
kumakura
0
120
ロールが細分化された組織でSREと協働するインフラエンジニアは何をするか? / SRE Lounge #18
kossykinto
0
150
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
9
1.5k
LLM開発を支えるエヌビディアの生成AIエコシステム
acceleratedmu3n
0
370
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.1k
For a Future-Friendly Web
brad_frost
179
9.9k
Practical Orchestrator
shlominoach
190
11k
Rails Girls Zürich Keynote
gr2m
95
14k
Scaling GitHub
holman
461
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Being A Developer After 40
akosma
90
590k
Done Done
chrislema
185
16k
Into the Great Unknown - MozCon
thekraken
40
2k
Transcript
©MIXI ©MIXI 今年1年のEKS運用振り返り 株式会社MIXI Vantageスタジオ みてねプロダクト開発部 基盤開発G 清水 勲 @isaoshimizu
3-shake SRE Tech Talk #8 Lightning Talk
2 ©MIXI About me 週末は社会人吹奏楽団での活動(楽団長、トロンボーン約30年、たまに指揮者)。 キャンプとクラフトビールが好き。 New Relic User Group
運営 清水 勲 @isaoshimizu 家族アルバム みてね Engineering Manager(SRE/CXE/Security) SIer時代(受託・自社開発) SNS「mixi」 モンストなど みてね 2003年 2011年 2014年 2018年 2024年 新卒入社 ミクシィ(現MIXI)入社 C/C++/C#/PHP/Python/iOS/AWS Fedora/MySQL/LXC /OpenStack Linux/MySQL/Ruby AWS/MySQL/Ruby 2022年1月〜EM
©MIXI みてねでは2021年からAmazon EKSを 運用してます (参考) 4年間のEKS移行の取り組みを振り返って https://gihyo.jp/article/2022/11/mitene-02eks
©MIXI EKSに移行して2年ほど。 2023年はどんな運用をしてきたのか。
©MIXI これからKubernetesやEKSの運用に関わる方 すでに運用している方 の参考になれば幸いです
©MIXI みてねのKubernetes構成
7 ©MIXI 現在のみてねのKubernetes構成 • Amazon EKS v1.27 (リリース⽇: May 24,
2023、標準サポート: July 2024、延⻑サポート: July 2025) • Helm Chart ◦ EKSクラスタ内のリソースはTerraformでは管理しないルール ◦ EKSクラスタ⾃体はTerraformで管理 • Argo CD • Argo Workflows • KEDA (SQSのキュー⻑ベースのオートスケール⽤) • Prometheus (In-Cluster, Short Term) • Amazon Managed Service for Prometheus (Long Term) • Grafana Loki • Grafana • みてねでの規模感(2023/12時点) ◦ 多い時で18,000Pods、少ない時で2,000Pods
©MIXI 2023年にやってきたこと 7つの事例
©MIXI ちなみに... 1年間でHelm ChartのPull Request数 600強くらいでした
©MIXI 1.リソース調整
11 ©MIXI 1.リソース調整 • CPU、メモリの調整 • それなりの頻度でさまざまなDeploymentのリソースを調整をしている • 調整のきっかけ ◦
OOMKilled ▪ 例) Cluster AutoscalerでOOMKilledの発⽣(つらい) • limitsの調整、CPU: 500m -> 2000m、Memory: 1000Mi -> 4000Mi ◦ オートスケールされにくいとき ▪ CPU利⽤率が低すぎてHPAが機能しないなど ◦ CPUの割り当てが⾜りなくて性能が出ていないとき ▪ Prometheusのメトリクスを⾒ながら最適値を探す
©MIXI 2.deschedulerの導入
13 ©MIXI 2.deschedulerの導入 • 導⼊のきっかけ ◦ Railsアプリのメモリリーク。デプロイされない期間(例えば週末や連休)など、ある程度の⽇数再 起動がかからないと、メモリ使⽤率が⾼まっていき、502エラーが少し⽬⽴つようになってきた。 • deschedulerを利⽤してPodの最⼤起動時間(PodLifeTime)をコントロールして、定期的に再起動がかか
るようにし、メモリを解放できるように。 PodLifeTime: enabled: true params: podLifeTime: maxPodLifeTimeSeconds: 28800 namespaces: include: - "NAMESPACE" labelSelector: matchLabels: app: APPNAME
©MIXI 3.CronJobの追加
15 ©MIXI 3.CronJobの追加 • 機能開発の中で定時バッチ処理が必要になるケースがある • 開発者にHelm ChartのPull Requestを作ってもらう •
Templateが⽤意されているのでValuesとして3⾏くらい追加するだけ
©MIXI 4.DCGM Exporterの導入
17 ©MIXI 4.DCGM Exporterの導入 • https://github.com/NVIDIA/dcgm-exporter • ⼀部の機能においてGPUを必要としている • GPUの各種メトリクスをPrometheusで取得できるように
• 細かく数値を⾒るというよりは傾向の変化をモニタリングしている
©MIXI 5.Helm Chartのアップデート
19 ©MIXI 5.Helm Chartのアップデート • CommunityのHelm Chartをアップデート ◦ たとえば、Prometheus、Cluster Autoscaler、kube-state-metricsなど
• アップデートによるメリット ◦ 新しいKubernetesバージョンへの対応 ◦ 新機能の利⽤ ◦ 各種脆弱性対応 • 現在は⼿動運⽤ということもあって、アップデートが放置されがち ◦ Renovateなどによる⾃動アップデート(⾃動Pull Request作成)を実現したい ▪ まもなくできそう
©MIXI 6.Opsクラスタ導入& Kubernetesアップデート
21 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(1) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure • SRE NEXT 2023で弊チームメンバーの杉本が登壇した際の内容
22 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(2) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=27
23 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(3) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=12
©MIXI 7.kubectlでPod作業するのを禁止
25 ©MIXI 7.kubectlでPod作業するのを禁止 • kubectl execでPodのシェルを起動して作業するのを禁⽌しました ◦ 作業のログが残らないため ◦ 開発者の
pods/exec などの権限を剥奪 • 代替⼿段として、ローカルPCからSession Managerを使って踏み台サーバーを経由してkubectl execを実 ⾏する仕組みを構築 • これによってSession ManagerのログがS3に保存され、すべてのPod内での作業が記録がされるように
©MIXI まとめ
27 ©MIXI まとめ • Kubernetes(EKS)運⽤3年⽬の実態についてお話ししました • コストパフォーマンスや安定性のためにリソース量の調整はいつまでも続いていく • 開発者が直接運⽤できる箇所は今後も増やしていきたい •
Kubernetesのアップグレード運⽤はだいぶこなれてきていますが、まだまだ改善の余地はあります • クラスタのアップグレードよりもHelm Chartのアップデート運⽤のほうが課題 ◦ アプリケーションのライブラリアップデート運⽤と同じような課題だが、⾃動化のツール整備がま だ追いついていなかった(Renovateで解決しそう) • Kubernetesにまつわる様々なツール群(OSS)に⽀えられています
©MIXI