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
400
今年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
280
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
2.1k
約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
9.1k
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
12
3.2k
全世界1,800万人が利用する「家族アルバム みてね」におけるNew Relic活用法 / FutureStack Tokyo 2023
isaoshimizu
1
600
『家族アルバム みてね』で計測しているSLIの事例 / SLI as measured in FamilyAlbum
isaoshimizu
4
800
Other Decks in Technology
See All in Technology
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
380
小学4年生夏休みの自由研究「ぼくと Copilot エージェント」
taichinakamura
0
620
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
2
210
Simplifying Cloud Native app testing across environments with Dapr and Microcks
salaboy
0
140
なぜAWSを活かしきれないのか?技術と組織への処方箋
nrinetcom
PRO
4
690
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
160
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
220
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
110
20251014_Pythonを実務で徹底的に使いこなした話
ippei0923
0
170
JAZUG 15周年記念 × JAT「AI Agent開発者必見:"今"のOracle技術で拡張するAzure × OCIの共存アーキテクチャ」
shisyu_gaku
1
160
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
250
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
270
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Rails Girls Zürich Keynote
gr2m
95
14k
Why Our Code Smells
bkeepers
PRO
339
57k
Documentation Writing (for coders)
carmenintech
75
5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Context Engineering - Making Every Token Count
addyosmani
5
230
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
A designer walks into a library…
pauljervisheath
209
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
The Cult of Friendly URLs
andyhume
79
6.6k
Unsuck your backbone
ammeep
671
58k
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