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
Search
Ryosuke Suto
October 12, 2017
Technology
1
2.4k
パブリック/プライベートクラウドでつかうKubernetes
Ryosuke Suto
October 12, 2017
Tweet
Share
More Decks by Ryosuke Suto
See All by Ryosuke Suto
横断的なSRE推進と成熟度評価
strsk8
9
7.8k
GKEを利用したサービスの運用
strsk8
1
610
GKE@AbemaTV
strsk8
12
9.3k
re:Invent2015参加レポ
strsk8
0
290
成長し続けるインフラの安定運用事情
strsk8
19
5.1k
ソーシャルゲームDBの危機回避
strsk8
10
14k
Other Decks in Technology
See All in Technology
PicoRabbit: a Tiny Presentation Device Powered by Ruby
harukasan
PRO
2
210
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
240
Amazon CloudWatch を使って NW 監視を行うには
o11yfes2023
0
160
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
6
710
watsonx.data上のベクトル・データベース Milvusを見てみよう/20250418-milvus-dojo
mayumihirano
0
110
DETR手法の変遷と最新動向(CVPR2025)
tenten0727
2
1.4k
AIエージェント開発手法と業務導入のプラクティス
ykosaka
1
130
フロントエンドも盛り上げたい!フロントエンドCBとAmplifyの軌跡
mkdev10
2
280
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
230
AIで進化するソフトウェアテスト:mablの最新生成AI機能でQAを加速!
mfunaki
0
140
AIと開発者の共創: エージェント時代におけるAIフレンドリーなDevOpsの実践
bicstone
1
310
Amazon CloudWatchで始める エンドユーザー体験のモニタリング
o11yfes2023
0
190
Featured
See All Featured
Practical Orchestrator
shlominoach
186
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
Why Our Code Smells
bkeepers
PRO
336
57k
The Language of Interfaces
destraynor
157
25k
Transcript
パブリック/プライベートクラウドでつかう Kubernetes Ryosuke Suto 2017/10/12 Kubernetes Meetup Tokyo #7
•須藤 涼介 @strsk •株式会社サイバーエージェント •技術本部 •サービスリライアビリティーグループ(SRG) •QC室 •エンジニア/マネージャー
Kubernetes
Public Cloud
None
None
•- node 200台 over •- 同時接続数十万 •- デプロイ •- kubetool
-> Deploykun •- ChatOps •- リリース共有、カナリアリリース AbemaTV • https://www.wantedly.com/companies/abema/post_articles/73396
•- ロギング •- CloudLogging + CloudPub/Sub •- Podの標準出力はLogging •- アプリケーションのログはPub/Subへ
•- Pub/Sub -> BigQuery, etc… •- 監視ツール •- Stackdriver, Prometheus AbemaTV • https://www.wantedly.com/companies/abema/post_articles/73396
Private Cloud (OpenStack)
•- 既存サービスのリプレース用 •- 開発環境構築中 •- レガシー環境、開発手法のモダン化 •- クラスター構築 •- kubespray(Ansible)
OpenStack
•- Dockerイメージ •- GCR •- ロギング •- 魔改造したFluentdからCloudLoggingへ •- 監視ツール
•- Datadog OpenStack
Private Cloudでのk8s運用 •- kubesprayでのデプロイが遅め •- 使わない部分も汎用的に記述されているため工夫が必要 •- すべて内部で完結させてしまうと運用コストが高くなる •- 適度に組み合わせて外に逃がす
Kubernetes採用の背景
•- 組織/システム的にマイクロサービスアーキテクチャを採用するようになる •- であれば各機能ごとにリリースもしやすいDocker一択 •- 開発初期は逆に属人性を生みやすい一面も •- 社内でもノウハウが溜まってくる •- 何より開発が活発
課題との歴史
デプロイフロー初期 •- あたたかみのある手動デプロイ •- Dockerイメージ自体はCircle CIでビルドしレジストリにPush •- 運用が初めてだったこともあり、開発時はkubectlによるリリースがデフォ •- 開発スケジュールが優先され、デプロイ周りを整えられないままローンチ
•- リリース時にSlackに連絡、手動でデプロイして様子を見て反映 •- 当然ながらオペミスが多発
デプロイフロー中期 •- 手動カナリアリリース •- ミスしても問題ないよう1Podだけリリースできるツールを開発 •- リリース時は1Podのみリリースし、しばらく問題がなければ全台に適用 •- 大きなミスは起きないまでも根本解決になっていない…
デプロイフロー後期 •- ChatOps •- リリース作成もカナリアリリースもSlack上からできるように! •- 手動からの解放 •- オペミスの削減
デプロイフロー後期
デプロイフロー今後 •- パイプラインベースのCI •- Spinnaker, Concourse CI, etc… •- 新規サービスで採用予定
•- カナリアリリース、判定、ロールバックを自動化 •- 社内に有識者がいたためConcourse CIを採用
デプロイフロー今後 •- Concourse CI •- Pivotalが開発 •- Go言語製 •- YAMLでジョブ、パイプラインを記述し結果をUIで見れる
デプロイフロー今後 •- Helmの導入検証 •- Kubernetesのパッケージマネージャ(rpmに対してyumのような) •- yamlファイルの作成コストを減らしたい •- Kubernetesの採用がより増えることを見越して
大量のロギング •- ログはFluentdで各ログストレージへ •- ログの量が多すぎてFluentdが高負荷に •- 標準出力は変わらずFluentdからCloud Loggingへ •- アプリケーションログはCloud
Pub/Subへ送り、Big Queryにバルクインサート
大量のメトリクス •- Podの監視はStackdriverでOK •- サービスが拡大し、Podが大量になるとStackdriverの表示が遅延 •- Prometheusの導入 •- ServiceにExporter用のendpointを追加 •-
Podが増減しても自動的に収集される •- より詳細かつ円滑な表示が可能に
まとめ
まとめ •- デプロイフローはまだまだ改善の余地あり •- 規模が大きくなった時のスケーリングが大事(当たり前) •- 自前でkubernetesを立てるときは全部管理しようとしない
一緒にはたらく仲間を募集しています! https://cyberagent-career.jp/ recruit/joboffer/81/112359/71-361