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
20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基...
Search
nezumisannn
November 20, 2019
Technology
0
600
20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基礎知識.pdf
nezumisannn
November 20, 2019
Tweet
Share
More Decks by nezumisannn
See All by nezumisannn
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
220
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
0
79
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
100
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.2k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
66
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
140
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
76
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
130
20210122_AlibabaCloudパートナーサミット_Terraform_Cloudを活用するマルチクラウドオートメーション.pdf
nezumisannn
0
58
Other Decks in Technology
See All in Technology
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
340
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
12k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
TODAY 看世界(?) 是我們在看扣啦!
line_developers_tw
PRO
0
170
ObsidianをMCP連携させてみる
ttnyt8701
2
120
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
7.3k
Securing your Lambda 101
chillzprezi
0
280
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.1k
評価の納得感を2段階高める「構造化フィードバック」
aloerina
1
160
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
160
「実体」で築く共通認識: 開発現場のコミュニケーション最適化 / Let's Get on the Same Page with Concrete Artifacts: Optimization of Communication in dev teams
kazizi55
0
140
API の仕様から紐解く「MCP 入門」 ~MCP の「コンテキスト」って何だ?~
cdataj
0
150
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
139
7k
The Language of Interfaces
destraynor
158
25k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
It's Worth the Effort
3n
184
28k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
690
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Thoughts on Productivity
jonyablonski
69
4.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
RailsConf 2023
tenderlove
30
1.1k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Transcript
Kubernetes is 何? を語るために必要な基礎知識 ビヨンド勉強会 #21 2019/11/20 株式会社ビヨンド 寺岡 佑樹
自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =
“ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] }
Kubernetes is 何?の前に
このクジラの名前は? ↑ Dockerと呼ぶらしい
Docker is 何? ・コンテナと呼ばれる仮想環境を提供するOSS ・開発はdotCloud社(現Docker社) ・仮想化という部分では同じだがハイパーバイザー型とは異なる ←上に乗ってるこれ
コンテナ is 何? ・アプリケーション及び依存関係をパッケージ化して抽象化したもの ・複数のコンテナを同じマシンで実行してOSのカーネルを共有できる ・各コンテナはユーザー空間で独立したプロセスとして実行される ・コンテナ内にOSが含まれないためサイズが小さく起動が早い ・Dockerエンジンさえあればどこでも同じように動く
つまり? コンテナ型 ハイパーバイザー型 https://www.docker.com/resources/what-container
Kubernetesは ・Docker前提で動作するものです ・事前知識として覚えておきましょう
Kubernetes is 何?
Kubernetes is 何? ・アプリケーションのコンテナ群を統合管理するためのソフトウェア ・GoogleがBorgと呼ばれる内製ツールをOSSとして公開したのが始まり ・現在はCloud Native Computing Foundationがメンテナンスを行っている
Kubernetesの注目度
こんなツイートが Kubernetesはクラウド界のLinuxになりつつある
kubernetesの注目度 ・Swarmを推奨していたDockerもKubernetesをネイティブにサポートした ・クラウドベンダーもKubernetes互換のマネージドサービスを多数リリース ・Elastic Kubernetes Service ・Google Kubernetes Engine ・Azure
Kubernetes Service
Kubernetesが 求められる背景
Kubernetesが求められる背景 ・モノリスからマイクロサービスへ https://aws.amazon.com/jp/microservices/ ・単一サービス ・密結合 ・複数サービス ・疎結合 ・サービスごとの開発 /デプロイ ・障害範囲の分離
マイクロサービスでは ・独立した複数のコンテナを効率的に管理できる仕組みが必要になる ・それがオーケストレーションツールと言われるもの ・Kubernetesもそのツールの中の1つ
Kubernetesで 何ができるのか?
Kubernetesで出来ること ・コンテナのスケジューリング ・ローリングアップデート ・オートスケーリング ・障害が発生したときのセルフヒーリング ・Infrastructure as Code
Kubernetesの 主要コンポーネント
Client Master Node https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
Client https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kubectl ・Kubernetesを操作するためのCLIクライアント ・全ての操作はkube-apiserverを経由して実行される
Master https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
マスターコンポーネント ・etcd ・kube-apiserver ・kube-scheduler ・kube-controller-manager ・cloud-controller-manager ・kube-dns
Master https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
etcd ・Kubernetesのリソース永続化に利用される分散型KVS ・Kubernetesの全てのクラスタ情報の保存場所として利用される
Master https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kube-apiserver ・kubernetesのAPIを提供するコンポーネント ・その他のコンポーネントはkube-apiserverを経由してリソースにアクセスする ・そのため直接etcdを参照するのはkube-apiserverのみになる ・その他クライアントの認証・認可も担当する ・負荷に応じてスケールアウトが可能
Master https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kube-scheduler ・作成されたPodをNodeへ割り当てるためのスケジューラ ・kube-apiserverを経由してPod及びNodeのリソースを非同期に監視する ・Podが作成されたときに最適なNodeを選択してバインディングする
Pod ・Kubernetesにおいてコンテナを動かすための最小単位 ・コンテナのイメージバージョンなどの基本情報 ・共有ストレージ(ボリューム) などが含まれる
Node ・仮想マシンまたは物理マシンで構成されたワーカーマシン ・Podは必ずNode上で実行される
Master https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kube-controller-manager ・Kubernetesオブジェクトを処理するコントローラの実行・管理を行うデーモン ・コントローラはkube-apiserverを経由してオブジェクトを非同期に監視する ・オブジェクトに変更があればコントローラによって変更が反映される ・オブジェクトには以下のようなものが存在する ・Deployment ・ReplicaSet
cloud-controller-manager ・Kubernetesの基盤となっているクラウドプロバイダを管理するコンポーネント ・マネージドなロードバランサなどを扱うときに利用する
kube-dns ・Kubernetesクラスタ内部で利用するDNS ・Serviceリソースが作成されるとkube-dnsにもレコードが登録される
Serviceリソース ・Podへの接続エンドポイントを提供 ・トラフィックをルーティング
Node https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
ノードコンポーネント ・kubelet ・kube-proxy
Node https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kubelet ・各Nodeで動作するエージェント ・kube-apiserverを監視して自ノードに割り当てられたPodを起動する
Node https://github.com/kubernetes/kubernetes/blob/rel ease-1.3/docs/design/architecture.md
kube-proxy ・Serviceリソースを元にルーティングを行う ・デフォルトでiptablesを利用してパケットの制御を行っている
独特の概念が多いですが ・基礎知識として覚えましょう ・実際に触ったときにより理解しやすくなります
まとめ
まとめ ・KubernetesでDockerコンテナ群を統合管理できる ・独自の概念が多いためまずは主要なコンポーネントを把握していくと良い ・実際に触ってみるのが早い(ニゲチャダメ)
終わり