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 浅瀬 dive / kubernetes shallow dive
Search
convto
June 19, 2019
Technology
0
490
kubernetes 浅瀬 dive / kubernetes shallow dive
kubernetes の海の浅瀬に入っていくための資料
convto
June 19, 2019
Tweet
Share
More Decks by convto
See All by convto
Go1.22からの疑似乱数生成器について/go-122-pseudo-random-generator
convto
2
200
Go1.20からサポートされるtree構造のerrの紹介と、treeを考慮した複数マッチができるライブラリを作った話/introduction of tree structure err added since go 1_20
convto
0
520
byte列のbit表現を得るencodingライブラリ作った
convto
1
880
Go runtimeの歩き方/how to follow go runtime function
convto
1
810
入出金ドメインの苦労話と解決へのアプローチ/funds in/out difficulties and solutions
convto
2
1.2k
rsa_understanding_memo
convto
0
470
検索エンジンことはじめ/First step towards full-text search engine
convto
0
87
自作コンパイラやっていきの巻💪💪/making my own compiler!
convto
0
90
GoogleCloudFunctionsでHTTPフックなGoスクリプトを書く / Write HTTP hook Go script with GoogleCloudFunctions
convto
0
85
Other Decks in Technology
See All in Technology
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.4k
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
1.2k
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
190
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
210
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
890
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
420
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
1k
ルーターでプレゼンする
puhitaku
1
2.8k
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
140
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
360
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
0
440
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
Featured
See All Featured
Building Applications with DynamoDB
mza
88
5.6k
Side Projects
sachag
451
41k
How to Ace a Technical Interview
jacobian
273
22k
Designing for humans not robots
tammielis
248
25k
In The Pink: A Labor of Love
frogandcode
138
21k
Design by the Numbers
sachag
274
18k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Visualization
eitanlees
137
14k
The Pragmatic Product Professional
lauravandoore
26
5.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
4
1.3k
Docker and Python
trallard
35
2.7k
Six Lessons from altMBA
skipperchong
22
3k
Transcript
kubernetes 浅瀬 dive 2019/06/19(水) Makuake LT Party #17
convto jisibari Twitter: @convto Github: convto 2
浅瀬 dive って何
Kubernetes のロゴ - こいつ船の舵らしい - コンテナ輸送船的な - おしゃれ - ぼくも海にあやかろう
水深 Deep dive
水深 Deep dive 浅瀬 dive
水深 Deep dive 浅瀬 dive
浅瀬 dive 8 水深 こっちをやります Deep dive
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Kubernetes とは
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
浅瀬すぎる
水深
水深
Kubernetes, わかりづらい - 概念が抽象的 - くそでかソフトウェア
宇宙から浅瀬にむかいたい - ざっくりどういうものか捉えたい - できれば身近なものとの比較とかがほしい
こういうツール 毎日使ってませんか
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
git とは
git - コード変更を commit というリソースとしてとらえて 抽象化して扱う - commit に対してCLIなどで操作ができる
git - コード変更を commit というリソースとしてとらえて 抽象化して扱う - commit に対してCLIなどで操作ができる
にている
Kubernetes と git の共通点 - 現実世界の情報を抽象化する - 抽象化されたリソースを CLI を使って操作
- 高度なことやろうとするのは難しい - が、使うだけならそこまででもない - 分散システムなので雑にやると不整合で死ぬ
Kubernetes と git のちがうところ - Kubernetes は詳細を yaml で管理する <->
git は詳 細もCLIで頑張る - Kubernetes はリソースが多い(10以上) <-> git は だいたい commit の操作
Kubernetes と git のちがうところ - Kubernetes は詳細を yaml で管理する <->
git は詳 細もCLIで頑張る - Kubernetes はリソースが多い(10以上) <-> git は だいたい commit の操作 Git よりでかいけどノリはとても似ている
Git と似てる 警戒しすぎなくてもい い
ざっくりノリはわかったぞ! ビーチ到着
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
コンテナの扱い
コンテナは pod というリソースで管理 - Pod にはだいたい一つのコンテナが載ってる - 条件によってはたまに複数 - アプリケーションが動くのはここ
- Pod の配置を指示してインフラを作っていく
だいたいおなじ コンテナ pod
サーバーの扱い
サーバーは node というリソースで管理 - master node が構成管理の仕事をしてくれます - Node に
pod がじゃんじゃか載っていく
node1 node3 node2 pod pod pod pod pod pod pod
pod pod pod
準備完了
もくじ - 浅瀬を目指して: kubernetes とは - まずはビーチに行こう: git との共通点 -
準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
同じpodを複数配置し たい
ReplicaSet - Pod を管理し、ある pod を任意の数つくる - Pod を監視し指定した数より減っていれば自動で 復旧させる
- どの node に pod が配置されるかはコントロールさ れない(ある程度配置ルールは決められる)
node1 node3 node2 pod pod pod pod
node1 node3 node2 pod pod pod pod 「全部で4つ」などの指定はできるが どう配置されるかはわからない
複数配置したpodの デプロイ時の挙動をコ ントロールしたい
Deployment - ReplicaSet を管理し安全に更新する手段を提供す る - いくつかの更新手段が提供されており、推奨され ているのは RollingUpdate という方法
各Nodeにデーモンを 仕込みたい
DaemonSet - Pod を管理し、任意の pod をすべての node に1つ ずつ設置する -
Fluentd や監視エージェントなど、確実にすべての 物理サーバーに置きたいものに利用する - GKE ではデフォで DeamonSet の fluentd がいる
node1 node3 node2 pod pod pod
DBなどの永続化デー タを管理したい
StatefulSet - DBクラスタなど状態を持ったアプリを構築できる - 細かいことは省略
クラスタ上でバッチな どを管理したい
Job, CronJob - Job は一度だけ pod を起動する - CronJob は
Job を cron 実行する - 詳しいことは省略
podとの関係図
Pod ReplicaSet Job Deployment CronJob DaemonSet StatefulSet
Pod ReplicaSet Job Deployment CronJob DaemonSet StatefulSet こいつらまとめて Workload リソース
という名前がついてます
Enjoy 浅瀬
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
現実のアプリはまだやることがある - 環境変数の管理 - LBなどの設定 - 開発者ごとの認証、認可 - オートスケールの設定 -
etc...
これらもKubernetes で管理できる
現実のアプリはまだやることがある - 環境変数の管理 Secret など - LBなどの設定 LoadBrancer Service など
- 開発者ごとの認証、認可 Service Account - オートスケールの設定 HorizontalPodAutoscaler な ど - etc...
どういうリソースがある かわからない
網羅的にリソースを学 びたい
リソースについての知識 - ドキュメント https://kubernetes.io/ja/docs/home/ - Kubernetes完全ガイド https://www.amazon.co.jp//dp/4295004804 - Kubernetes実践入門 https://www.amazon.co.jp/dp/4297104385
とりあえず試したい
web上でタダでクラスタたてれる - https://labs.play-with-k8s.com/ 4時間で消えるので 勉強以外の用途には使えない
よい船旅を!
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る
- 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
まとめ - Kubernetes は実は git に似ている - はじめの一歩はそこまで難しくない - 一部を使うだけでもメリットはある
- Pod を管理する様々なリソースがある - 一次ソースや体系的なソースで勉強すると良さそ う(ネット記事とかはしんどい印象)
次回予告
全然きまってない - Go のおすすめCI設定 - 新しい言語触ってみた系 - なんか作ってみた系 - コンテナイメージ最適化
ご清聴 ありがとうございました