Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
kubernetes 浅瀬 dive 2019/06/19(水) Makuake LT Party #17
Slide 2
Slide 2 text
convto jisibari Twitter: @convto Github: convto 2
Slide 3
Slide 3 text
浅瀬 dive って何
Slide 4
Slide 4 text
Kubernetes のロゴ - こいつ船の舵らしい - コンテナ輸送船的な - おしゃれ - ぼくも海にあやかろう
Slide 5
Slide 5 text
水深 Deep dive
Slide 6
Slide 6 text
水深 Deep dive 浅瀬 dive
Slide 7
Slide 7 text
水深 Deep dive 浅瀬 dive
Slide 8
Slide 8 text
浅瀬 dive 8 水深 こっちをやります Deep dive
Slide 9
Slide 9 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 10
Slide 10 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 11
Slide 11 text
Kubernetes とは
Slide 12
Slide 12 text
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Slide 13
Slide 13 text
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Slide 14
Slide 14 text
浅瀬すぎる
Slide 15
Slide 15 text
水深
Slide 16
Slide 16 text
水深
Slide 17
Slide 17 text
Kubernetes, わかりづらい - 概念が抽象的 - くそでかソフトウェア
Slide 18
Slide 18 text
宇宙から浅瀬にむかいたい - ざっくりどういうものか捉えたい - できれば身近なものとの比較とかがほしい
Slide 19
Slide 19 text
こういうツール 毎日使ってませんか
Slide 20
Slide 20 text
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Slide 21
Slide 21 text
Kubernetes - インフラやアプリを抽象化して扱う - 抽象化されたインフラやアプリを操作できる
Slide 22
Slide 22 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 23
Slide 23 text
git とは
Slide 24
Slide 24 text
git - コード変更を commit というリソースとしてとらえて 抽象化して扱う - commit に対してCLIなどで操作ができる
Slide 25
Slide 25 text
git - コード変更を commit というリソースとしてとらえて 抽象化して扱う - commit に対してCLIなどで操作ができる
Slide 26
Slide 26 text
にている
Slide 27
Slide 27 text
Kubernetes と git の共通点 - 現実世界の情報を抽象化する - 抽象化されたリソースを CLI を使って操作 - 高度なことやろうとするのは難しい - が、使うだけならそこまででもない - 分散システムなので雑にやると不整合で死ぬ
Slide 28
Slide 28 text
Kubernetes と git のちがうところ - Kubernetes は詳細を yaml で管理する <-> git は詳 細もCLIで頑張る - Kubernetes はリソースが多い(10以上) <-> git は だいたい commit の操作
Slide 29
Slide 29 text
Kubernetes と git のちがうところ - Kubernetes は詳細を yaml で管理する <-> git は詳 細もCLIで頑張る - Kubernetes はリソースが多い(10以上) <-> git は だいたい commit の操作 Git よりでかいけどノリはとても似ている
Slide 30
Slide 30 text
Git と似てる 警戒しすぎなくてもい い
Slide 31
Slide 31 text
ざっくりノリはわかったぞ! ビーチ到着
Slide 32
Slide 32 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 33
Slide 33 text
コンテナの扱い
Slide 34
Slide 34 text
コンテナは pod というリソースで管理 - Pod にはだいたい一つのコンテナが載ってる - 条件によってはたまに複数 - アプリケーションが動くのはここ - Pod の配置を指示してインフラを作っていく
Slide 35
Slide 35 text
だいたいおなじ コンテナ pod
Slide 36
Slide 36 text
サーバーの扱い
Slide 37
Slide 37 text
サーバーは node というリソースで管理 - master node が構成管理の仕事をしてくれます - Node に pod がじゃんじゃか載っていく
Slide 38
Slide 38 text
node1 node3 node2 pod pod pod pod pod pod pod pod pod pod
Slide 39
Slide 39 text
準備完了
Slide 40
Slide 40 text
もくじ - 浅瀬を目指して: kubernetes とは - まずはビーチに行こう: git との共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 41
Slide 41 text
同じpodを複数配置し たい
Slide 42
Slide 42 text
ReplicaSet - Pod を管理し、ある pod を任意の数つくる - Pod を監視し指定した数より減っていれば自動で 復旧させる - どの node に pod が配置されるかはコントロールさ れない(ある程度配置ルールは決められる)
Slide 43
Slide 43 text
node1 node3 node2 pod pod pod pod
Slide 44
Slide 44 text
node1 node3 node2 pod pod pod pod 「全部で4つ」などの指定はできるが どう配置されるかはわからない
Slide 45
Slide 45 text
複数配置したpodの デプロイ時の挙動をコ ントロールしたい
Slide 46
Slide 46 text
Deployment - ReplicaSet を管理し安全に更新する手段を提供す る - いくつかの更新手段が提供されており、推奨され ているのは RollingUpdate という方法
Slide 47
Slide 47 text
各Nodeにデーモンを 仕込みたい
Slide 48
Slide 48 text
DaemonSet - Pod を管理し、任意の pod をすべての node に1つ ずつ設置する - Fluentd や監視エージェントなど、確実にすべての 物理サーバーに置きたいものに利用する - GKE ではデフォで DeamonSet の fluentd がいる
Slide 49
Slide 49 text
node1 node3 node2 pod pod pod
Slide 50
Slide 50 text
DBなどの永続化デー タを管理したい
Slide 51
Slide 51 text
StatefulSet - DBクラスタなど状態を持ったアプリを構築できる - 細かいことは省略
Slide 52
Slide 52 text
クラスタ上でバッチな どを管理したい
Slide 53
Slide 53 text
Job, CronJob - Job は一度だけ pod を起動する - CronJob は Job を cron 実行する - 詳しいことは省略
Slide 54
Slide 54 text
podとの関係図
Slide 55
Slide 55 text
Pod ReplicaSet Job Deployment CronJob DaemonSet StatefulSet
Slide 56
Slide 56 text
Pod ReplicaSet Job Deployment CronJob DaemonSet StatefulSet こいつらまとめて Workload リソース という名前がついてます
Slide 57
Slide 57 text
Enjoy 浅瀬
Slide 58
Slide 58 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 59
Slide 59 text
現実のアプリはまだやることがある - 環境変数の管理 - LBなどの設定 - 開発者ごとの認証、認可 - オートスケールの設定 - etc...
Slide 60
Slide 60 text
これらもKubernetes で管理できる
Slide 61
Slide 61 text
現実のアプリはまだやることがある - 環境変数の管理 Secret など - LBなどの設定 LoadBrancer Service など - 開発者ごとの認証、認可 Service Account - オートスケールの設定 HorizontalPodAutoscaler な ど - etc...
Slide 62
Slide 62 text
どういうリソースがある かわからない
Slide 63
Slide 63 text
網羅的にリソースを学 びたい
Slide 64
Slide 64 text
リソースについての知識 - ドキュメント https://kubernetes.io/ja/docs/home/ - Kubernetes完全ガイド https://www.amazon.co.jp//dp/4295004804 - Kubernetes実践入門 https://www.amazon.co.jp/dp/4297104385
Slide 65
Slide 65 text
とりあえず試したい
Slide 66
Slide 66 text
web上でタダでクラスタたてれる - https://labs.play-with-k8s.com/ 4時間で消えるので 勉強以外の用途には使えない
Slide 67
Slide 67 text
よい船旅を!
Slide 68
Slide 68 text
もくじ - 浅瀬を目指して: kubernetesとは - まずはビーチに行こう: gitとの共通点 - 準備体操: コンテナやサーバーの扱いを知る - 浅瀬 dive: pod を管理するリソースたち - 沖にでるためには - おわりに
Slide 69
Slide 69 text
まとめ - Kubernetes は実は git に似ている - はじめの一歩はそこまで難しくない - 一部を使うだけでもメリットはある - Pod を管理する様々なリソースがある - 一次ソースや体系的なソースで勉強すると良さそ う(ネット記事とかはしんどい印象)
Slide 70
Slide 70 text
次回予告
Slide 71
Slide 71 text
全然きまってない - Go のおすすめCI設定 - 新しい言語触ってみた系 - なんか作ってみた系 - コンテナイメージ最適化
Slide 72
Slide 72 text
ご清聴 ありがとうございました