[OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

21
OPENSTACK WITH KUBERNETES Openstack Days korea 2016.2.18

Transcript of [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Page 1: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

OPENSTACK WITH KUBERNETES

Openstack Days korea2016.2.18

Page 2: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Agenda§ Kubernetes 소개§ Virtualization과 container 차이§ Kubernetes Architecture§ Openstack Nova-docker§ Openstack Murano§ Openstack Magnum

Page 3: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Kubernetes

• open-source system for managing containerized applications across multiple hosts in a cluster

• Controll Docker and Rocket containers

• Builed Go Language • 구글의 서버 관리 운영 노하우를

opensource로 공개됨

Page 4: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

First Cluster at Google

4

Page 5: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

And the First rack

5

Page 6: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Now

6

Page 7: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

7

Virtualization Vs Container

HardWare

HostOS

Hypervisor

GuestOS

GuestOS

GuestOS

Bin/Lib

Bin/Lib

Bin/Lib

APP APP APP

HardWare

HostOS

Bin/Lib

Bin/Lib

Bin/Lib

APP APP APP

Page 8: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

• Linux container 가 동작하는 곳은 어디든 동일하게 동작• Application 동작에 필요한 최소한의 binary와 libray 만 가상화 함으로써 최소

한의 overhead• 한번 설정으로 모든 어플리케이션을 배포 할 수 있음• 한번 설정으로 Log ,remote access, network configuration, resource

monitoring이 가능• 별도의 설정없이 개발환경과 동일한 환경으로 운영 가능• 기존 서비스 환경을 중단시키지 않으면서 새로운 어플리케이션 배포 가능

8

Container

Page 9: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Kubernetes Building Blocks

Container• Handle package dependenceies• Diffrenet version same machine• NO DLL HELL

PODS• Co-locate containers• Shared volumes• IP address independent port space• Unit of deploymenet, migration

9

Pod

/data

python 3.4.2glibc 2.21

MyService

python 2.7.9glibc 2.19

MySQL

Page 10: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Kubernetes Building Blocks

Service• Replicated pods• Auto-restart member pods• Abstract name(DNS)• IP address for the service• Load Balancing among replicas

10

LoadBalancer

Service IP

Page 11: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

11

Rolling upgrade for Kubernetees

frontend

v1.2

frontend

v1.2

frontend

v1.2

LoadBalancer

Pods:

Labels:frontend

v1.3

frontend

v1.3

frontend

v1.3

Page 12: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

• Application 이 최소한의 micro service 단위로 구현되어 있어야함

12

Kubernetes is not Magic

Page 13: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

13

Kubernetes Architecture

Page 14: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Minion NodeMinion Node

Minion Node

14

Kubernetes Architecture

Kubectl (User command)

Master Node

Scheduler

Minion Node

Kubelet Kube-proxy

Docker

REST API

Internet

Page 15: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

15

Openstack Architecture

Page 16: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

16

Kubernetes Architecture

Docker

Host NIC

pod

Docker

FlanneldVXLAN Overlayservice cluster IP

pod pod

Docker

Host NIC

pod

Host NIC

FlanneldFlanneld

pod

Page 17: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

17

Openstack Nova-Docker

Page 18: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

18

Openstack Murano

Page 19: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

19

Openstack Magnum

Page 20: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

Q & A

20

Page 21: [OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes

감사합니다[email protected]

070-7603-3401