SlideShare a Scribd company logo
GMOインターネット株式会社
次世代システム研究室
李 大範 (イ デボム)
Kubernetes入門
ContainerからKubernetesまで
Kubernetes?
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
どこでも
同じ環境のように動く
軽量のアプリケーション実行環境
環境情報を「dockerfile」で記載しておくことによって
どこでも同じような環境が作れる
どこでも
同じ環境のように動く
同じ環境のように動く
軽量のアプリケーション実行環境
running a modern Linux kernel
(3.2+ generally or 2.6.32+ for RHEL 6.5+, Fedora, & related)
どこでも(Linux Kernel)
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
VM
Container
Kubernetes is Container
Orchestration System
HostのKernelを利用する
Kubernetes is Container
Orchestration System
VMより軽く起動・停止が早い
Dockerを利用するメリット1
私の環境では動いてましたが…
→dockerfileを共有することで
同じ環境が提供できる!
複数のVMを立ち上げに時間かかった
→dockerを利用することによって起
動・停止早い(HostOSのkernelを利用)
Dockerを利用するメリット2
Kubernetes is Container
Orchestration System
Kubernetes is Container
Orchestration System
Automated container deployment
Automated container scaling
Container management
Kubernetes is Container
Orchestration System
19
Container Orchestrator Market Share
2017/3/26~2018/3/26
Google TrendからContainer OrchestratorのMarket Shareを
見るとDocker swarmやApache Mesosは平面化されて、
Kubernetesが一番注目されている。
Container
Orchestrator
Market Share
21
・ギリシャ語が語源で意味は操舵手
・k8s (ubernete->8) called k-eight-s
・Originally designed by Google
( Borg->Omega->Kubernetes )
・OSS (Apache License 2.0)
・CNCFからプロジェクトを運用
(特定の企業に依存しない)
About Kubernetes
船の操舵手
(ソウダシュ)
*CNCF(Cloud Native Computing Foundation)
https://commons.wikimedia.org/wiki/File:RIGBY(1842)_Baltic_letters,_p1.054_HELMSMAN.jpg
22
About Kubernetes
・多数のクラウドプロバイダを対応 (業界のスタンダードに)
Kubernetesは
何を解決するための
システムなのか
24
Dockerでできる
・ Containerの生成
・ Containerの削除
・ Volumeの生成
・ Volumeの削除
25
・ Containerの生成
・ Containerの削除
・ Volumeの生成
・ Volumeの削除
Dockerコンテナの
ライフサイクルは
Docker自身で管理する
26
Dockerでできない
・複数のNodeに対してのデプロイ
・スケーリング
・Containerのアップデート
・Container障害時の復旧
・Containerの負荷分散
27
・ Containerの生成
・ Containerの削除
・ Volumeの生成
・ Volumeの削除
Dockerだけだと開発環境で
の運用は問題ない。
だが本番のサービスを運用
するにはものたりない。
28https://blogs.vmware.com/cloudnative/2018/01/23/containers-kubernetes-benefits/
Dockerを
本番で安定・安全に
運用するには
Docker+α が必要。
30
Infra (Public/Private Cloud, etc…)
Operation System Operation System Operation System
Container Runtime Container Runtime Container Runtime
Container Orchestration
(Containerized App Management, Deployment, Scheduling)
Containerized
App
Containerized
App
Containerized
App
Containerized
App
Containerized
App
Container
Orchestration System
Kubernetes
Kubernetesは
どのようにコンテナを
管理するのか
33
Kubernetes Basic Concepts
Node
(物理マシン、仮想マシン)
Kubernetes Cluster
Pod Pod Pod
コン
テナ
コン
テナ
コン
テナ
コン
テナ
コン
テナ
コン
テナ
Kubernetesではひとつまたは複数のコンテナを
「Pod」との単位で管理している
Node
(VM)
34
Kubernetes Cluster
Node
Node
Node (s)Master
CLI
API
UI
API Server
etcd cluster
Scheduler
Controller
Manager
kubelet Kube-proxy
pod
pod
pod
pod
containercontainer
container
container
container
container
container
container
Internet
Kubernetesは
どのようにコンテナを
管理するのか
36
Kubernetes Component - Master
API Server
etcd cluster
Scheduler
Controller
Manager
Masterは
各Nodeに対してデプロイ、
アップデート、スケーリングなど
の指示を出す役割
API Server
・コンテナクラスタのすべての操作を
コントロールする
・RESTful API
・利用するにはkubernetes dashboardを
利用したUIでのアクセスやkubectlコマンドを
利用したCLIでのアクセスがある
37
Kubernetes Component - Master
API Server
etcd cluster
Scheduler
Controller
Manager
Masterは
各Nodeに対してデプロイ、
アップデート、スケーリングなど
の指示を出す役割
Scheduler
・アプリケーションの配置を行う。
・podをどのnodeに配置するかを決める。
38
Kubernetes Component - Master
API Server
etcd cluster
Scheduler
Controller
Manager
Masterは
各Nodeに対してデプロイ、
アップデート、スケーリングなど
の指示を出す役割
Controller Manager
・バックグラウンドでクラスタのコントローラ
を管理
・APIサーバを利用しクラスタ状態を監視。
・クラスタを望ましい状態にする
・Replication Controller, Endpoint Controller…
39
Kubernetes Component - Master
API Server
etcd cluster
Scheduler
Controller
Manager
Masterは
各Nodeに対してデプロイ、
アップデート、スケーリングなど
の指示を出す役割
etcd Cluster
・k8sのクラスタ情報を保存する
・secret, pod state, volume address
40
Kubernetes Component – (worker)Node
Node
Node
kubelet Kube-proxy
pod
pod
pod
pod
containercontainer
container
container
container
container
container
container
(Worker)Node は
podが動作する環境
kubelet
・node agentの役割。
・マスタとの通信でnodeに指示を出す
・k8sで作られたコンテナのみ管理
・HTTP endpoint
・HTTP server
https://kubernetes.io/docs/reference/generated/kubelet/
41
Kubernetes Component – (worker)Node
Node
Node
kubelet Kube-proxy
pod
pod
pod
pod
containerMySQL
container
container
app
Php-fpm
Nginx
container
(Worker)Node は
podが動作する環境
pod
・containerのグループ
・k8sのミニマムなデプロイ単位
・Podの中のコンテナはStroageや
namespaces、portを共有
42
Kubernetes Component – (worker)Node
Node
Node
kubelet Kube-proxy
pod
pod
pod
pod
containercontainer
container
container
container
container
container
container
(Worker)Node は
podが動作する環境
kube-proxy
・Kubernetes network proxy
・各Nodeに動作する
・特定なPortを開けてPod外からの
アクセスができるようにする
https://kubernetes.io/docs/reference/generated/kube-proxy/
デモします!
44
デモでのポイント
・負荷に柔軟なシステムを作りたい
→Horizontal Pod Scaling検証
・障害に強いシステムを作りたい
→Self-healing検証
45
デモでのポイント
・スケーリング(Scaling)
→負荷状況によってシステム
または運用側がPodを増やす
・自動回復(Self-healing)
→Podが急に停止した場合でも
正常な状態に戻す
46
デモ環境(ローカル)
・minikube
・kubernetes on Docker
・…
47
環境設定(Mac)
48
デモ環境(kubernetes on Docker)
Docker
18.03.0-ce
---
k8s v1.9.2
49
デモ環境(kubernetes on Docker)
・クラスタ起動確認
$ kubectl cluster-info
50
Horizontal Pod Scaling
シナリオ
1. PHP+Apacheの組み合わせでアプリケ
ーションを二つ立ち上がっていてロードバ
ランシングされている
2. 負荷急に上がりすぎ現状の構成で負荷
分散ができなくなった
demo
52
シナリオ
1. サービスが何らかの理由で停止された
(今回は手動でpodを削除)
2.それから自動的に回復されるのを確認
Self-healing
demo
54
■Summary
▪ Kubernetesはスタンダード(かも)
▪ Kubernetesは本番でコンテナされているアプリケーショ
ンを管理してくれる
▪ Googleからスタートしたプロジェクトで今はOSSとして
CNCFが管理している。(今は卒業生)
▪ Kubernetesはひとつのmasterと複数の(Worker)Node
でクラスタ構成になっている
▪ 今ではローカル環境でも簡単にKubernetesが利用できる(
minikube, kubernetes on dockerなど )
ありがとうございました。

More Related Content

What's hot (20)

PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
PDF
Docker Compose 徹底解説
Masahito Zembutsu
 
PPTX
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
 
PDF
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
 
PDF
Kubernetes
erialc_w
 
PDF
An Introduction to Kubernetes
Imesh Gunaratne
 
PDF
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
PDF
Kubernetes雑にまとめてみた 2019年12月版
VirtualTech Japan Inc.
 
PDF
OpenStack勉強会
Yuki Obara
 
PPTX
Kubernetes 101 for Beginners
Oktay Esgul
 
PPTX
Docker & Kubernetes基礎
Daisuke Hiraoka
 
PPTX
OpenStackで始めるクラウド環境構築入門
VirtualTech Japan Inc.
 
PPTX
KubernetesバックアップツールVeleroとちょっとした苦労話
imurata8203
 
PDF
Zero downtime deployment of micro-services with Kubernetes
Wojciech Barczyński
 
PDF
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
 
PDF
Kubernetes Basics
Eueung Mulyana
 
PDF
Introduction to kubernetes
Raffaele Di Fazio
 
PPTX
Kubernetes超入門 with java
Yasunari Tanaka
 
PDF
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
 
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
Docker Compose 徹底解説
Masahito Zembutsu
 
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
 
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
 
Kubernetes
erialc_w
 
An Introduction to Kubernetes
Imesh Gunaratne
 
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
Kubernetes雑にまとめてみた 2019年12月版
VirtualTech Japan Inc.
 
OpenStack勉強会
Yuki Obara
 
Kubernetes 101 for Beginners
Oktay Esgul
 
Docker & Kubernetes基礎
Daisuke Hiraoka
 
OpenStackで始めるクラウド環境構築入門
VirtualTech Japan Inc.
 
KubernetesバックアップツールVeleroとちょっとした苦労話
imurata8203
 
Zero downtime deployment of micro-services with Kubernetes
Wojciech Barczyński
 
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
 
Kubernetes Basics
Eueung Mulyana
 
Introduction to kubernetes
Raffaele Di Fazio
 
Kubernetes超入門 with java
Yasunari Tanaka
 
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
 

Similar to Kubernetes introduction (20)

PDF
AKSとTerraformでKubernetesクラスター作成
satosato8
 
PDF
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
Naoki Nagazumi
 
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 
PPTX
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Akihito Inoh
 
PDF
第10回しゃちほこオラクル倶楽部
オラクルエンジニア通信
 
PDF
Dockerことはじめ的なはなし
pinmarch_t Tada
 
PDF
2024-03-09_Practical-engineering-LT_container-tech-intro_v2.1.pdf
Yusaku Miyata
 
PDF
Dockerでらくらく開発・運用を体感しよう
Takashi Makino
 
PPTX
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
PPTX
コンテナの基本 ~Docker実践~
Ryosuke Uchiyama
 
PDF
Dockerの仕組みとIIJ社内での利用例
maebashi
 
PDF
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
 
PPTX
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
 
PPTX
コンテナって何?
Hiroyuki Numao
 
PDF
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
PDF
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
 
PDF
Azure container as a service v0.1.19.1213
Ayumu Inaba
 
PDF
Dockerを使ってみよう
GIG inc.
 
PDF
Getting started with Windows Containers
Kazuki Takai
 
AKSとTerraformでKubernetesクラスター作成
satosato8
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
Naoki Nagazumi
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Akihito Inoh
 
第10回しゃちほこオラクル倶楽部
オラクルエンジニア通信
 
Dockerことはじめ的なはなし
pinmarch_t Tada
 
2024-03-09_Practical-engineering-LT_container-tech-intro_v2.1.pdf
Yusaku Miyata
 
Dockerでらくらく開発・運用を体感しよう
Takashi Makino
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
コンテナの基本 ~Docker実践~
Ryosuke Uchiyama
 
Dockerの仕組みとIIJ社内での利用例
maebashi
 
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
 
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
 
コンテナって何?
Hiroyuki Numao
 
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
 
Azure container as a service v0.1.19.1213
Ayumu Inaba
 
Dockerを使ってみよう
GIG inc.
 
Getting started with Windows Containers
Kazuki Takai
 
Ad

Kubernetes introduction

Editor's Notes

  • #10: https://cloudblogs.microsoft.com/windowsserver/2018/03/20/introducing-windows-server-2019-now-available-in-preview/ Windows server 2019 → linux / kubernetes support
  • #23: 操舵手(ソウダシュ)
  • #33: Kubernetes feature Kubernetes architecture Kubernetes demo
  • #45: https://rominirani.com/tutorial-getting-started-with-kubernetes-with-docker-on-mac-7f58467203fd https://medium.com/@lizrice/accessing-an-application-on-kubernetes-in-docker-1054d46b64b1
  • #52: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ https://medium.com/@marko.luksa/kubernetes-autoscaling-based-on-custom-metrics-without-using-a-host-port-b783ed6241ac
  • #53: 3min
  • #55: 3min