Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
kubernetes 浅瀬 dive / kubernetes shallow dive
convto
June 19, 2019
Technology
0
440
kubernetes 浅瀬 dive / kubernetes shallow dive
kubernetes の海の浅瀬に入っていくための資料
convto
June 19, 2019
Tweet
Share
More Decks by convto
See All by convto
byte列のbit表現を得るencodingライブラリ作った
convto
1
590
Go runtimeの歩き方/how to follow go runtime function
convto
1
500
入出金ドメインの苦労話と解決へのアプローチ/funds in/out difficulties and solutions
convto
1
940
rsa_understanding_memo
convto
0
340
検索エンジンことはじめ/First step towards full-text search engine
convto
0
66
自作コンパイラやっていきの巻💪💪/making my own compiler!
convto
0
66
GoogleCloudFunctionsでHTTPフックなGoスクリプトを書く / Write HTTP hook Go script with GoogleCloudFunctions
convto
0
55
Goのパフォーマンス計測 / go performance measurement
convto
0
210
Athenaのパーテション設定をCloudWatch Events + Lambda で自動化する
convto
0
73
Other Decks in Technology
See All in Technology
Oktaの管理者権限を適切に移譲してみた
shimosyan
2
230
エンタープライズ領域でのブロックチェーン・インターオペラビリティの発展 / Enterprise Blockchain Interoperability
gakumura
0
100
Astroで始める爆速個人サイト開発
takanorip
12
8.3k
Google Cloud Updates 2022/12/01-12/15
no24oka
1
150
20230123_FinJAWS
takuyay0ne
0
100
UIFlowの2.0がやってきた! / ビジュアルプログラミングIoTLT vol.13
you
0
210
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
2
120
日経電子版だけじゃない! 日経の新規Webメディアの開発 - NIKKEI Tech Talk #3
sztm
0
100
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
470
Cloudflare Workersで動くOG画像生成器
aiji42
1
440
Akiba-dot-SaaS-ExtraHop
sakaitakeshi
1
100
OCIコンテナサービス関連の技術詳細 /oke-ocir-details
oracle4engineer
PRO
0
750
Featured
See All Featured
The Mythical Team-Month
searls
210
40k
Web development in the modern age
philhawksworth
197
9.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
270
12k
BBQ
matthewcrist
75
8.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
830
Code Reviewing Like a Champion
maltzj
508
38k
Building Adaptive Systems
keathley
27
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
Three Pipe Problems
jasonvnalue
89
8.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.8k
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設定 - 新しい言語触ってみた系 - なんか作ってみた系 - コンテナイメージ最適化
ご清聴 ありがとうございました