Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetesのオペレータを Kubernetes知らない人に説明
Search
Satoru Takeuchi
PRO
August 21, 2021
Technology
1
420
Kubernetesのオペレータを Kubernetes知らない人に説明
kanazawa.rb #108のLTスライドです
Satoru Takeuchi
PRO
August 21, 2021
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
eBPF
sat
PRO
1
93
waruiBPF
sat
PRO
0
88
eBPFとwaruiBPF
sat
PRO
4
2.6k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
87
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
170
様々なファイルシステム
sat
PRO
0
320
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
410
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
170
Other Decks in Technology
See All in Technology
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
370
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
890
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
460
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
140
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
510
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
200
AIBuildersDay_track_A_iidaxs
iidaxs
3
780
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
470
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
130
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
430
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
160
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
730
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
77
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
160
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
100
Large-scale JavaScript Application Architecture
addyosmani
515
110k
A designer walks into a library…
pauljervisheath
210
24k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
110
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
130
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Transcript
Kubernetesのオペレータを Kubernetes知らない人に説明 Aug. 21th, 2021 kanazawa.rb #108 LT大会 Satoru Takeuchi
twitter: satoru_takeuchi 1
Kubernetesとは • 分散アプリ実行基盤 • 管理者はマニフェストと呼ばれるYAMLを書いて以下コマンド実行 ◦ kubectl apply app.yaml •
K8sはマニフェストの状態になるようにアプリを維持(後述) 2
従来型アプリ実行基盤との違い • やりたいこと ◦ nginxを2多重で動かす • 誰が何をするか ◦ 従来型: 手続き的の管理
▪ nginxを2つ動かす ▪ 1つ落ちたら人間が1つ再起動 • ansibleとかがやってたりもする ◦ Kubernetes: 宣言的の管理 ▪ 右のマニフェストをapply ▪ K8sが2個nginxを立ち上げる ▪ 1個落ちたらK8sが自動的に1つ再起動 • 宣言型のほうは”使うのは”楽 3 apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx spec: replicas: 2 template: spec: containers: - name: nginx image: nginx:1.14.2
Kubernetesのリソース • 個々のアプリはPodとよばれるコンテナのかたまりを示すリソースで定義 • アプリの多重度を維持するのがReplicasetリソース(*1) ◦ KubernetesがReplicaSetリソースのreplicasフィールドで定義された数、 Podリソースを作る ◦ KubernetesはPodリソースの数だけアプリを実行する
• PodやReplicaSetはK8sがデフォルトで提供している • 複雑なアプリの場合はReplicaSetやPodだけでは辛い 4 *1) 普通はDeploymentリソースを使うが説明は割愛
Custom Resource • 複雑なアプリ用に独自リソース(Custom Resource, CR)を作れる ◦ CRの定義をCustom Resource Definition(CRD)と呼ぶ
• 以下はRookという分散ストレージCeph用のCR ◦ storage以下でクラスタに組み込むディスクを定義 ◦ 全ノードの(使われていない)全ディスクをクラスに組み込む 5 apiVersion: ceph.rook.io/v1 kind: CephCluster spec: cephVersion: image: quay.io/ceph/ceph:v16.2.5 storage: useAllNodes: true useAllDevices: true
controllerとoperator • CRを操作するためのプログラム • CRDとcontrollerを合わせたものをoperatorという ◦ operator開発者が作る • 以下のように動作する ◦
CRに変化(生成、変更)があったときなど、状態に変化があったときに呼び出される ◦ あるべき姿との差分にしたがって必要な処理をする • たとえば前ページのCephCluster CRなら… ◦ K8sクラスタにノードを追加 ◦ CephClusterリソースを扱うRookのcontrollerが動く ◦ クラスタに登録されていない (新しいノード内の)ディスクがあることを検出 ◦ クラスタに新しいディスクを登録 6
operatorつらい話 • operatorのおかげで人間は楽をできる • ただし • operatorを実装する開発者はつらい ◦ 「差分を検出してあるべき姿にする」プログラムは書くのが大変 ◦
様々な泥臭いハックが必要 • 問題が出たときは結局ユーザもつらい ◦ トラブル解決のために operator、管理対象プログラムについての知見が必要 • 続きはWebで! ◦ オペレータの実装はつらい ◦ https://zenn.dev/satoru_takeuchi/articles/d8c37a037308d8 7