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
ICTSCにおけるk8s運用の話
Search
Takeru Hayasaka
March 07, 2021
Technology
0
600
ICTSCにおけるk8s運用の話
ICTSCにおいてのk8sクラスタはさくらのクラウドに全て載せているが、このスライドではどのように運用しどの様な構成のかを述べる
Takeru Hayasaka
March 07, 2021
Tweet
Share
More Decks by Takeru Hayasaka
See All by Takeru Hayasaka
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.6k
eBPF at Mobile Network Data Plane
takehaya
0
160
Programmable Bandwidth Management with eBPF
takehaya
1
300
eBPF Deep Dive: Architecture and Safety Mechanisms
takehaya
14
2.6k
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
3
3.6k
Exploring XDP: Fundamentals and Real-World Implementations in Mobile Network Data Plane
takehaya
1
4.1k
JANOG53 LT 自作k6 Extension利用した NFVへの負荷計測手法の紹介
takehaya
0
740
Wakamonog13 LT: VPPで始めるHigh Performance BGPルーター
takehaya
2
1.9k
自作パケット処理系の性能測定と可視化&改善のPDCAを回して最強のパケット処理系の作り方を学ぼう / Let's Measure the Performance of Packet Processing System with Python Tools.
takehaya
4
5.6k
Other Decks in Technology
See All in Technology
ユニットテストに対する考え方の変遷 / Everyone should watch his live coding
mdstoy
0
130
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.5k
Trust as Infrastructure
bcantrill
0
350
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
120
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
150
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
280
許しとアジャイル
jnuank
1
130
Oracle Cloud Infrastructure:2025年9月度サービス・アップデート
oracle4engineer
PRO
0
470
SOC2取得の全体像
shonansurvivors
1
410
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
270
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
189
55k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Raft: Consensus for Rubyists
vanstee
139
7.1k
How to train your dragon (web standard)
notwaldorf
96
6.3k
The Invisible Side of Design
smashingmag
301
51k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Rails Girls Zürich Keynote
gr2m
95
14k
How to Think Like a Performance Engineer
csswizardry
27
2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Transcript
ICTSCにおける k8s運用の話 Takeru Hayasaka(@takemioIO) 2021/03/07 ICTSC2020 LT会 https://unsplash.com/photos/SInhLTQouEk 1
自己紹介 1. 竹/TakeruHayasaka/@takemioIOと言います k8sの運用とかなんでもやってる人 2. パケット処理書きすぎてoptionなしL3までなら 目で読めるようになった.... 3. 最近の趣味はなろう小説を漁ること 4.
来年から京都に行くんですが地元が宮城で 友達と彼女がいないので募集しています。 助けてください(メソメソ) 5. #ictsc_bar_night でトラコンBAR というトークショウをやってる 2
アウトライン 1. Overview: 今年のk8sのトポロジー 2. ICTSCにおけるk8s運用とは? • プロビジョニング編 • ストレージ
編 • ネットワーク編 • 監視編 • アプリケーション編 3. まとめと一年を振り返ってみて 3
Overview https://unsplash.com/photos/ur7BDi9MpXg 4
ICTSCにおいてのk8sクラスタ ICTSCにおいてのk8sクラスタはさくらのクラウドに全て乗ってる • スコアサーバーを載せたり • 監視基盤を載せたり • VMのプロビジョニングをするためのツールを載せたり... とかの所謂出来れば落としたくないものとかを載せて動かす 運用を行っています
• 主に面倒を常に見てるのは大体4-5人ぐらい (@takemioIOが取りまとめや全体のアーキテクトをやってるが 運営がこれ欲しいとか言って雑にPRが飛んでくることもある) • 基本インフラ紹介をあまりちゃんとされないところの裏方さんです コンテスト直前によくSREみたいなことをやってると思ってもらうと イメージしやすいかも??? 5
k8sクラスタの論理構成 6
k8sクラスタを含めた全体像 7
ICTSCにおいてのk8sクラスタ • prd: 皆さんがアクセスするものを載せるやつ • dev: 壊していいやつ • wsp: 監視系やCDなどを載せるところ
• 1クラスタあたりのリソース • global v4addr /27 • master x 3 • 1node: 4vcpu, 8mem, disk 100 • worker x 3 • 1node: 8vcpu, 32mem, disk 250 • (LB + BGP Router) x 3 • 1node: 4vcpu, 8mem, disk 40 • こんなに大量のリソースのご提供はさくらインターネット様からの リソースで動いている。ありがとうございます🙇♀ 8
ICTSCにおいての運用リポジトリ 9
ICTSCにおいてのmanifestリポジトリ 10
ICTSCにおいての運用リポジトリ 11
ICTSCにおいての運用リポジトリ 12
ICTSCにおいての運用リポジトリ 13
ICTSCにおいての運用リポジトリ 14
ICTSCにおいての運用リポジトリ 15
ICTSCにおいての運用リポジトリ 😇 16
ICTSCにおいての運用リポジトリ なんとかワイワイ検証をしつつ、 SREぽい裏方さんをやっています🙇♀🙇♀🙇♀ 17
プロビジョニング編 https://unsplash.com/photos/ur7BDi9MpXg 18
k8sクラスタの論理構成 19 再掲
プロビジョニング: VMを作る • さくらのクラウドにVMを作る -> terraform 20 • sakura cloudの
tfproviderを 使ってVMをプロビジョニング • S3のバックエンドを導入して tfstateをリモートに置いた (自分たちでminioを立てた)
プロビジョニング: VMに流し込み • kubeletなどをインストール -> ansibleで流し込み 21 • dynamic inventryをやって
pythonからminioにある tfstateをfetchし、そこに ある接続情報をまとめて ansibleが接続しにいく • 同時に管理用userなどを作る
プロビジョニング: kubeapi serverのLB構築 • haproxyを構築 22 • haproxyを構築することで 複数のmaster nodeを置くこと
が可能になる • ←実際のコンフィグ例
プロビジョニング: k8sの構築 • kubeadmを利用して構築 23 • ←こんな感じのコンフィグを 用意しておいて sudo kubeadm
init --config=kubeadm-config.yaml をする感じ
ネットワーク編 https://unsplash.com/photos/ur7BDi9MpXg 24
k8sクラスタの論理構成 25 再掲
ネットワーク: アプリを外部に公開する • 外部にアプリケーションを公開 -> MetalLB 26 • ベアメタル環境で使用できる KubernetesのExternal
Load Balancerの実装 • L2 モード:リーダーノードを選出 =>負荷に偏り BGPモード:外部ルーターが ECMPでロードバランス • 複数アドレスプール: 使用したいアドレス帯をService で指定可能 metallb-config.yaml ingress-service.yaml
ネットワーク: Ingress • Ingress Controller -> Nginx Ingress Controller 27
• SSLの終端 • サービス転送 • nginxなのでhostpathとして 利用やサーバーサイドの やりとりに対する処理など • 複数台にスケールするので L7 LBとしての意味も持つ
ストレージ編 https://unsplash.com/photos/ur7BDi9MpXg 28
k8sクラスタの論理構成 29 再掲
ceph+rookについて rookというツールでceph を構築をして分散ストレージ を導入してる 我々の環境だと filestoreで per nodeごとに おいて運用している (bluestoreだとメモリをすごく
必要にするなどの理由から このようにしている) 30
cephについてのdashboard 31
監視編 https://unsplash.com/photos/ur7BDi9MpXg 32
k8sクラスタの論理構成 33 再掲
監視基盤の構成 34 今年度利用しているものたち • Zabbix (新規) ◦ Router,IPMIのデータ取得 • Grafana
◦ Zabbix, prometheusの可視化 • prometheus • AlertManager ◦ prometheusのalert • elastiflow (k8sでは新規) ◦ sflow • ELK ◦ syslog...etc.. 本戦10日前から監視基盤を頑張って一人で建てました. これから先のスライドは10日間頑張ったものを見てください! by umeda
Zabbix ZabbixでJuniper MX5のsnmpを取得し Grafanaで可視化しています。 本日15:30ごろまでのトラフィックグラフです。 35
問題VMの監視 36 問題VMの監視を行いました。 展開の際に正常にVMが立ち上がったかのチェックを行えました。
Ceph Dashboard 37 Cephよくわからん!!!
ElastiFlow 38 きれいだな~
1day 午前3時prometheusが死んでた! msg="append failed" err="write to WAL: log samples: write
/etc/prometheus-data/wal/00001007: disk quota exceeded" 39 umedaは寝ていたので、えるとさんがトラコンしてくださいました。:pray: まさか、10日で20GB食うとは知らないじゃん..! ストレージの永続化した人←umeda prometheusが死んでもalertは飛ばない!!
監視は以上です。 ありがとうございました。 by umeda 40
アプリケーション編 https://unsplash.com/photos/ur7BDi9MpXg 41
k8sクラスタの論理構成 42 再掲
ArgoCD 43
ArgoCD 44
ArgoCDの全体の構成 45
pomerium 46 ◦ Pomerium: アプリの前段 にプロキシとして存在して外 部のIDプロバイダーを用いて ユーザを識別する ◦ githubなどのorgをictsc
は使っている ◦ https://wiki.icttoracon.net/ictsc2020/infra/cluste r/Pomerium#Pomerium%E3%81%AB%E3%8 1%A4%E3%81%84%E3%81%A6
pomerium: ビフォー 47
pomerium: アフター 48
まとめと見所(盛り沢山) 1. 複数台のクラスターを用意してカナリア を入れてより本番を壊さないようになった 2. 以前はワンオペSPOF野郎(@takemioIO)だったがインフラチーム としてちゃんとわかる人が増えた 3. スコアサーバーや監視等にはargoCDが生えてアプリケーションの デプロイにアプリケーションエンジニアがkubectl
applyをしなくて も生きていけるようになった 4. 監視などの接続性についてはgithubのOrgを通じて認証することで より安全に使えるようになり、最高の監視です最高! 5. k8sでもrook+cephを導入してDisaster対策済み 6. MetalLB, nginx ingressを合わせてマルチティアLBに、vyosを入れること でBGPモードでなおかつVPNなども合わせたネットワーク を使えるようになった 49