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_何_を語るために必要な基礎知識.pdf
Search
nezumisannn
November 20, 2019
Technology
0
540
20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基礎知識.pdf
nezumisannn
November 20, 2019
Tweet
Share
More Decks by nezumisannn
See All by nezumisannn
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
880
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
50
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
93
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
53
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
82
20210122_AlibabaCloudパートナーサミット_Terraform_Cloudを活用するマルチクラウドオートメーション.pdf
nezumisannn
0
35
20201203_AlibabaCloudセミナー_ApsaraDB_for_PolarDB_の便利機能と競合DBとの差別化ポイントの紹介.pdf
nezumisannn
0
12
20200617_ビヨンド勉強会_24_Terraformにおけるディレクトリ構造のプラクティスと記述事例.pdf
nezumisannn
0
250
20200522_FGDC_Terraform_CloudでGitOpsを使用したCI_CDパイプラインを構築する.pdf
nezumisannn
0
370
Other Decks in Technology
See All in Technology
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
360
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
160
VS CodeでAWSを操作しよう
smt7174
7
1.6k
Tableau事例紹介 / Tableau Case Study of Eureka
kazuya_araki_tokyo
1
180
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
280
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
200
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
490
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
180
アクセス制御にまつわる改善 / Improving access control
itkq
0
510
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
120
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.5k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Building Adaptive Systems
keathley
31
1.9k
Code Review Best Practice
trishagee
55
15k
Testing 201, or: Great Expectations
jmmastey
28
6.3k
4 Signs Your Business is Dying
shpigford
175
21k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Automating Front-end Workflow
addyosmani
1356
200k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
What's in a price? How to price your products and services
michaelherold
237
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
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コンテナ群を統合管理できる ・独自の概念が多いためまずは主要なコンポーネントを把握していくと良い ・実際に触ってみるのが早い(ニゲチャダメ)
終わり