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
570
ICTSCにおけるk8s運用の話
ICTSCにおいてのk8sクラスタはさくらのクラウドに全て載せているが、このスライドではどのように運用しどの様な構成のかを述べる
Takeru Hayasaka
March 07, 2021
Tweet
Share
More Decks by Takeru Hayasaka
See All by Takeru Hayasaka
eBPF Deep Dive: Architecture and Safety Mechanisms
takehaya
12
2k
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
2
2.7k
Exploring XDP: Fundamentals and Real-World Implementations in Mobile Network Data Plane
takehaya
1
3.3k
JANOG53 LT 自作k6 Extension利用した NFVへの負荷計測手法の紹介
takehaya
0
620
Wakamonog13 LT: VPPで始めるHigh Performance BGPルーター
takehaya
2
1.5k
自作パケット処理系の性能測定と可視化&改善のPDCAを回して最強のパケット処理系の作り方を学ぼう / Let's Measure the Performance of Packet Processing System with Python Tools.
takehaya
4
5.2k
SRv6 Mobile User Plane(MUP) の紹介とMUP-BGPのOSS実装における相互接続性について
takehaya
1
900
Debug linux drop packets
takehaya
1
1.2k
P4とICTSCにおいての利活用例
takehaya
1
520
Other Decks in Technology
See All in Technology
Road to Go Gem #rubykaigi
sue445
0
460
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
1
310
Creating Awesome Change in SmartNews
martin_lover
1
280
OSSコントリビュートをphp-srcメンテナの立場から語る / OSS Contribute
sakitakamachi
0
1.4k
Dynamic Reteaming And Self Organization
miholovesq
3
490
CBになったのでEKSのこともっと知ってもらいたい!
daitak
1
160
От ручной разметки к LLM: как мы создавали облако тегов в Lamoda. Анастасия Ангелова, Data Scientist, Lamoda Tech
lamodatech
0
710
AIで進化するソフトウェアテスト:mablの最新生成AI機能でQAを加速!
mfunaki
0
140
IVRyにおけるNLP活用と NLP2025の関連論文紹介
keisukeosone
0
200
React ABC Questions
hirotomoyamada
0
140
PicoRabbit: a Tiny Presentation Device Powered by Ruby
harukasan
PRO
2
210
OpenSearchでレガシーな検索処理の大幅改善をやってやろう
dznbk
2
170
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
670
Thoughts on Productivity
jonyablonski
69
4.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
For a Future-Friendly Web
brad_frost
176
9.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
660
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
GitHub's CSS Performance
jonrohan
1030
460k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
How to Ace a Technical Interview
jacobian
276
23k
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