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.5k
Exploring XDP: Fundamentals and Real-World Implementations in Mobile Network Data Plane
takehaya
1
3.2k
JANOG53 LT 自作k6 Extension利用した NFVへの負荷計測手法の紹介
takehaya
0
600
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.1k
SRv6 Mobile User Plane(MUP) の紹介とMUP-BGPのOSS実装における相互接続性について
takehaya
1
880
Debug linux drop packets
takehaya
1
1.2k
P4とICTSCにおいての利活用例
takehaya
1
520
Other Decks in Technology
See All in Technology
アプリケーション固有の「ロジックの脆弱性」を防ぐ開発者のためのセキュリティ観点
flatt_security
32
11k
OPENLOGI Company Profile
hr01
0
61k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
7
1.2k
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
110
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
ウェブアクセシビリティとは
lycorptech_jp
PRO
0
260
20250328_OpenAI製DeepResearchは既に一種のAGIだと思う話
doradora09
PRO
0
150
チームの性質によって変わる ADR との向き合い方と、生成 AI 時代のこれから / How to deal with ADR depends on the characteristics of the team
mh4gf
4
330
AWS CDK コントリビュート はじめの一歩
yendoooo
1
120
新卒エンジニア研修の試行錯誤と工夫/nikkei-tech-talk-31
nishiuma
0
200
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
140
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
4.9k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
Navigating Team Friction
lara
184
15k
Code Review Best Practice
trishagee
67
18k
4 Signs Your Business is Dying
shpigford
183
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
Docker and Python
trallard
44
3.3k
Embracing the Ebb and Flow
colly
85
4.6k
Documentation Writing (for coders)
carmenintech
69
4.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
620
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