Slide 1

Slide 1 text

Masaya Aoyama CyberAgent adtech studio CloudNative࣌୅ʹ͓͚ΔKubernetes ৘ใॲཧֶձ ίϯϐϡʔλγεςϜγϯϙδ΢Ϝ 2018 MasayaAoyama @amsy810

Slide 2

Slide 2 text

Japan Container Days v18.04 Keynote Cloud Native Meetup Tokyo Organizer (+ KubeCon + JKD) for Kubernetes CKA #138CKAD #2 OpenStack / Kubernetes Contributor Masaya Aoyama (@amsy810) Infrastructure Engineer

Slide 3

Slide 3 text

Hobby == Kubernetes

Slide 4

Slide 4 text

Supervisor == Hirotsu Toshio

Slide 5

Slide 5 text

Agenda page 05 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 6

Slide 6 text

Agenda page 06 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 7

Slide 7 text

Cloud Native and Kubernetes What is Kubernetes? What is Cloud Naitve?

Slide 8

Slide 8 text

CNCF and The Linux Foundation • KubernetesThe Linux Foundation CNCF •

Slide 9

Slide 9 text

page 09 CNCF CNCF Community Presentation, CNCF, 2018 (https://github.com/cncf/presentations)

Slide 10

Slide 10 text

Graduated projects Graduated and Incubating Projects, CNCF, 2018-11-28 (https://www.cncf.io/projects/)

Slide 11

Slide 11 text

Incubating projects Graduated and Incubating Projects, CNCF, 2018-11-28 (https://www.cncf.io/projects/)

Slide 12

Slide 12 text

Sandbox projects Sandbox Projects, CNCF, 2018-11-28 (https://www.cncf.io/sandbox-projects/)

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Cloud Native page 014 Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone. CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28 (https://github.com/cncf/toc/blob/master/DEFINITION.md)

Slide 15

Slide 15 text

Cloud Native & page 015 Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. !#Scalable " $% CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28 (https://github.com/cncf/toc/blob/master/DEFINITION.md) • Container • Immutable Infrastructure • Service Mesh • Microservice • Declarative API

Slide 16

Slide 16 text

Cloud Native5 page 016 These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28 (https://github.com/cncf/toc/blob/master/DEFINITION.md) • +- • $ • ,* • 1( • )0 4. '#2 &"3 ! %/ note. SRE

Slide 17

Slide 17 text

Cloud Native- page 017 The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone. CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28 (https://github.com/cncf/toc/blob/master/DEFINITION.md) • ! #' • ! ! • ! ,%* ($+ ! )"&

Slide 18

Slide 18 text

Cloud Native8 page 018 Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone. CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28 (https://github.com/cncf/toc/blob/master/DEFINITION.md) • .0 • & • /- • 4* • +3 71 )%5 ($6 "!'2 Open Scalable#,

Slide 19

Slide 19 text

Docker Swarm mode Container Orchestration Engine

Slide 20

Slide 20 text

Container Orchestration Engine (4/0 • 3*Docker2/ • # $ # • $ # / $ $ # • "$ # $ • #-.15 • 6&+!$ # • $ • "$# # • $,')%2/

Slide 21

Slide 21 text

Container Orchestration Engine CYOP • XE Docker*" SO • 1 $ ,2.1 • 2.1 / 2"2.1 • 02.1)!2" • 1 $ KLRZ • ^>F /(&2.1 • 2'!%. • 02#%-11 • !2J?D; SO Container Orchestration Engine CYOP • QT9 + • B34 • SO • 8[M • :NW67_U IA \H@] 54 =

Slide 22

Slide 22 text

Kubernetes 06 2014 Borg OSS Kubernetes timeline page 022 Google Borg" ~2015 Google ! $#OrchestratorBorg

Slide 23

Slide 23 text

page 023 CNCF v1.0 07 2015 Cloud Native Computing Foundation 11 2014 GCP GKE Google Cloud Platform Google Kubernetes Engine Kubernetes timeline

Slide 24

Slide 24 text

page 024 Amazon EKS 11 2017 Amazon Web Service Amazon Elastic Container Service for Kubernetes 02 2017 Azure AKS Microsoft Azure Azure Container Service Kubernetes timeline

Slide 25

Slide 25 text

future is promising 32 Certified Kubernetes Platform/Distribution 11 2017 Kubernetes CNCF Platform Distribution page 025 09 2017 Certified Kubernetes Administrator Kubernetes ! Kubernetes timeline

Slide 26

Slide 26 text

page 026 KubeCon + CloudNativeCon KubeCon + CloudNativeCon Barcelona 2019 Call for Proposals (CFP) Is Open, CNCF, 2018-11-28 (https://www.cncf.io/blog/2018/11/16/kubecon-barcelona-2019-call-for-proposals-cfp-is-open/)

Slide 27

Slide 27 text

CNCF Community Presentation, CNCF, 2018 (https://github.com/cncf/presentations)

Slide 28

Slide 28 text

page 028 Enterprise • Monzo Bank • Kubernetes + Linkerd (Service Mesh) Ref: https://monzo.com/blog/2016/09/19/building-a-modern-bank-backend/

Slide 29

Slide 29 text

Agenda page 029 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 30

Slide 30 text

Container / Docker Benefit of Container / Docker • • •

Slide 31

Slide 31 text

Container System Container • KVMXen • init Application Container • • page 04

Slide 32

Slide 32 text

Docker • Docker4%Application Container .71-+8$! • #DevOps/# 2: /3 6)*5 • 0, Moby" &9 # containerd (' page 032

Slide 33

Slide 33 text

page 033 Ref: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Ref: https://12factor.net/ Part of Docker Container Best Practice • >(1 • "2; $0@Immutable InfrastructureA • ?:7+ / 397+*" !'8 • #/< !& • 48)=-%7+,1 . 6 • 5 • etc

Slide 34

Slide 34 text

DockerfileDocker Image page 034 FROM centos:7 RUN yum -y install epel-release RUN yum -y install nginx COPY nginx.conf /etc/nginx/ ENTRYPOINT ["nginx", "-g", "daemon off;"] Build Once, Run Anywhere Docker Image

Slide 35

Slide 35 text

Docker Image page 035 5: ENTRYPOINT ["nginx", "-g", "daemon off;"] 4: COPY nginx.conf /etc/nginx/ 3: RUN yum -y install nginx 2: RUN yum -y install epel-release 1: FROM centos:7 Docker Image

Slide 36

Slide 36 text

page 036 $ docker build . -t sample-image Sending build context to Docker daemon 252.9kB Step 1/5 : FROM centos:7 ---> 75835a67d134 Step 2/5 : RUN yum -y install epel-release ---> Running in 9db248fc7b9a ... Removing intermediate container 9db248fc7b9a ---> 2fe5a7f8c007 Step 3/5 : RUN yum -y install nginx ---> Running in 0547bd920b0a ... Removing intermediate container 0547bd920b0a ---> 843b47a96c5e Step 4/5 : COPY nginx.conf /etc/nginx/ ---> fe63b2d4c95d Step 5/5 : ENTRYPOINT ["nginx", "-g", "daemon off;"] ---> Running in 876ee4d29339 Removing intermediate container 876ee4d29339 ---> b5068171c053 Successfully built b5068171c053 Successfully tagged sample-image:latest 75835a67d134 2fe5a7f8c007 843b47a96c5e fe63b2d4c95d b5068171c053 sample-image

Slide 37

Slide 37 text

page 037 $ docker history sample-image IMAGE CREATED BY SIZE b5068171c053 #(nop) ENTRYPOINT ["nginx" "-g" … 0B fe63b2d4c95d #(nop) COPY file:6edadf5af999cacd… 3.51kB 843b47a96c5e yum -y install nginx 214MB 2fe5a7f8c007 yum -y install epel-release 99.5MB 75835a67d134 #(nop) CMD ["/bin/bash"] 0B #(nop) LABEL org.label-schema.sc… 0B #(nop) ADD file:fbe9badfd2790f074… 200MB 75835a67d134 2fe5a7f8c007 843b47a96c5e fe63b2d4c95d b5068171c053 sample-image

Slide 38

Slide 38 text

Docker page 038 • • Read Write • Read Only

Slide 39

Slide 39 text

page 039 5: ENTRYPOINT [”/usr/sbin/nginx", "-g", "daemon off;"] 4: COPY nginx.conf /etc/nginx/ 3: RUN yum -y install nginx 2: RUN yum -y install epel-release 1: FROM centos:7

Slide 40

Slide 40 text

page 040 5: ENTRYPOINT [”/usr/sbin/nginx", "-g", "daemon off;"] 5: ENTRYPOINT [”nginx", "-g", "daemon off;"]

Slide 41

Slide 41 text

moby/buildkit – =+/ “docker build” page 041 • DAG;I1-KDGLLB?,37B • "') '4?9,37B • (& $%4?.A • JFE!'624?.A • root5#( • Nmoby/moby, containerd/containerd#(O Ref: https://www.slideshare.net/AkihiroSuda/buildkit

Slide 42

Slide 42 text

DockerfileDocker Image page 042 FROM sample-image:latest RUN yum –y install telnet • !" • )(#' &%!!$

Slide 43

Slide 43 text

Container page 043 • . # 740 %/. • . #+/&-"8 B35@ • 7/$/(" DC B35@ • 12 factor app)!', =:A • 6 * • 912 • >;

Slide 44

Slide 44 text

Agenda page 044 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 45

Slide 45 text

Microservice and Service Mesh Benefit of Microservice and Service Mesh • • • • •

Slide 46

Slide 46 text

Microservice Architecture page 046 ProductPage Reviews Details Ratings HTTP/gRPC HTTP/gRPC HTTP/gRPC

Slide 47

Slide 47 text

page 047 500+ microservices The Case of Chaos, Bruce Wong, 2014-12-19, (https://www.slideshare.net/BruceWong3/the-case-for-chaos) The History of the Service Mesh, The New Stack, 2018-2-13, (https://thenewstack.io/history-service-mesh/)

Slide 48

Slide 48 text

%' )#!D@X_71T gRPC, REST N%' )#!cS 2 )#!@X_7UJ<f "$'9A : CT/*"$'1T f^=eO4; 6YBbK-^ 2`aG7%' )#!bK,+?M CT\-E[L !)&(9A G7CT!)&( .IV d8,+F0 G7CTd8Z 53 R] H> )#!PQW Benefit of Microservice Golang Java Scala gRPC REST

Slide 49

Slide 49 text

%' )#!D@X_71T gRPC, REST N%' )#!cS 2 )#!@X_7UJ<f "$'9A : CT/*"$'1T f^=eO4; 6YBbK-^ 2`aG7%' )#!bK,+?M CT\-E[L !)&(9A G7CT!)&( .IV d8,+F0 G7CTd8Z 53 R] H> )#!PQW Developer Benefit of Microservice

Slide 50

Slide 50 text

%' )#!D@X_71T gRPC, REST N%' )#!cS 2 )#!@X_7UJ<f "$'9A : CT/*"$'1T f^=eO4; 6YBbK-^ 2`aG7%' )#!bK,+?M CT\-E[L !)&(9A G7CT!)&( .IV d8,+F0 G7CTd8Z 53 R] H> )#!PQW Benefit of Microservice

Slide 51

Slide 51 text

%' )#!D@X_71T gRPC, REST N%' )#!cS 2 )#!@X_7UJ<f "$'9A : CT/*"$'1T f^=eO4; 6YBbK-^ 2`aG7%' )#!bK,+?M CT\-E[L !)&(9A G7CT!)&( .IV d8,+F0 G7CTd8Z 53 R] H> )#!PQW Benefit of Microservice

Slide 52

Slide 52 text

%' )#!D@X_71T gRPC, REST N%' )#!cS 2 )#!@X_7UJ<f "$'9A : CT/*"$'1T f^=eO4; 6YBbK-^ 2`aG7%' )#!bK,+?M CT\-E[L !)&(9A G7CT!)&( .IV d8,+F0 G7CTd8Z 53 R] H> )#!PQW Benefit of Microservice

Slide 53

Slide 53 text

page 053 Can we get Observability? The Case of Chaos, Bruce Wong, 2014-12-19, (https://www.slideshare.net/BruceWong3/the-case-for-chaos) The History of the Service Mesh, The New Stack, 2018-2-13, (https://thenewstack.io/history-service-mesh/)

Slide 54

Slide 54 text

Service Mesh Architecture (generally) page 054 • Microservice • Microservice with Service Mesh (for Observability)

Slide 55

Slide 55 text

Service Mesh page 055 • Microservice • Traffic Shifting (ex, Canary release) • Circuit Break • Fault Injection • Rate Limit • Retry • mTLS

Slide 56

Slide 56 text

Canary Release page 056

Slide 57

Slide 57 text

Microservice / Service Mesh page 057 • Microservice 2J=:OC*@0$ • 5R49,-HS#!"Q3T • MicroserviceP-K>8D% • MicroserviceP • 1? I+,

Slide 58

Slide 58 text

Agenda page 058 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 59

Slide 59 text

Kubernetes Overview Promote Cloud Native • • • • •

Slide 60

Slide 60 text

Kubernetes page 060 Design Principles, Kubernetes Community, 2017-11-04 (https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/principles.md) 01 Declarative Code & API Manifests API Infrastructure as Code

Slide 61

Slide 61 text

Declarative Code & API page 061 Master Worker Worker Worker Register Declarative Manifest to API Server client

Slide 62

Slide 62 text

Kubernetes page 062 Design Principles, Kubernetes Community, 2017-11-04 (https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/principles.md) 02 03 01 Self Healing ) #" Automation & Immutable Infrastructure Immutable Infrastructure& # Declarative Code & API Manifests$" %'API !( Infrastructure as Code

Slide 63

Slide 63 text

Agenda page 063 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 64

Slide 64 text

Kubernetes & Workloads Running Container

Slide 65

Slide 65 text

Workloads page 065 • Workloads Deployment ReplicaSet ReplicaSet Pod Pod Pod Pod Pod Deployment ReplicaSet Pod

Slide 66

Slide 66 text

Pod page 066 • Kubernetes " • 1 #! $ Node Scheduling% • PodIP Address $PortBind% Deployment ReplicaSet Pod

Slide 67

Slide 67 text

Pod Linux Namespace page 067 • PodLinux Namespace Container • PID K8s 1.12 net user ipc pid mnt uts

Slide 68

Slide 68 text

Container Design Pattern page 068 Design patterns for container-based distributed systems Brendan Burns, David Oppenheimer (Google) 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud '16) (https://www.usenix.org/system/files/conference/hotcloud16/hotcloud16_burns.pdf) • Pod • Sidecar pattern • Ambassador pattern • Adaptor pattern

Slide 69

Slide 69 text

Sidecar pattern page 069 •

Slide 70

Slide 70 text

Ambassador Pattern page 070 • " # !

Slide 71

Slide 71 text

Adaptor pattern page 071 • !$ " #

Slide 72

Slide 72 text

ReplicaSet page 072 • Pod Pod Deployment ReplicaSet Pod

Slide 73

Slide 73 text

PodReplicaSet • Pod

Slide 74

Slide 74 text

Replica

Slide 75

Slide 75 text

ReplicaSet Self-Healing page 075 • ReplicaSet PodReplica • = NodePod Node

Slide 76

Slide 76 text

SchedulingPod page 076 • 1. Node Affinity / Node Anti-affinity 2. Pod Affinity / Pod Anti-affinity 3. Taints / Tolerations

Slide 77

Slide 77 text

Node Affinnity / Node Anti-affinity page 077 • Node

Slide 78

Slide 78 text

Inter-pod Affinity / Inter-pod Anti-Affinity page 078 • Pod Pod

Slide 79

Slide 79 text

Taints / Tolerations page 079 • PodNode Node PodReject

Slide 80

Slide 80 text

Deployment • ReplicaSet page 080 Deployment ReplicaSet Pod

Slide 81

Slide 81 text

Deployment Rolling Update page 081

Slide 82

Slide 82 text

Deployment Rollback page 082

Slide 83

Slide 83 text

ReplicaSet page 083

Slide 84

Slide 84 text

Workloads"( page 084 DaemonSet: StatefulSet: Job: CronJob: Node 1Pod' !%* Pod' #$&Pod' )Pod'

Slide 85

Slide 85 text

Cloud Native ' % page 085 !$()Persistent Volume* / &#")Secret / ConfigMap* #"

Slide 86

Slide 86 text

Agenda page 086 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 87

Slide 87 text

Kubernetes & Networking Connect to container

Slide 88

Slide 88 text

Kubernetes Network page 088 • External Network Pod • Internal Network NodePod CNI

Slide 89

Slide 89 text

Service page 089 Service Load Balancing Service Discovery

Slide 90

Slide 90 text

Load Balancingtype: ClusterIP page 090

Slide 91

Slide 91 text

Load Balancingtype: LoadBalancer page 091

Slide 92

Slide 92 text

Load Balancing page 092

Slide 93

Slide 93 text

Balancingkube-proxyproxy-mode page 093 1. userspace • Userspace kube-proxy 2. iptables • iptables • kube-proxyiptables 3. ipvs • ipvs • kube-proxyipvs

Slide 94

Slide 94 text

page 094 Service Discovery • Service Discovery IP

Slide 95

Slide 95 text

page 095 Service Discovery • Kubernetes DNS Service Object DNS " resolv.conf#search$ ! SERVICE.NAMESPACE.svc.cluster.local

Slide 96

Slide 96 text

Ingress page 096 • Service L4 LoadBalancing • Ingress L7 LoadBalancing •

Slide 97

Slide 97 text

Pod Native Network page 097 • 2LoadBalancing

Slide 98

Slide 98 text

Pod Network Policy page 098 • Pod • Network Policy Node iptables

Slide 99

Slide 99 text

Kubernetes Network )96%& page 099 *14#/!Kubernetes 3 -5 ".2+( • Rolling Update0NodeLB,1'Rolling Update 7 • 8$0LB8$

Slide 100

Slide 100 text

page 0100 •

Slide 101

Slide 101 text

Agenda page 0101 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 102

Slide 102 text

Kubernetes is Distributed System Kubernetes architecture deep dive

Slide 103

Slide 103 text

Manifest (Declarative Code) • '$(*YAML • KubernetesAPI Object%"# • ! & nginx 3)

Slide 104

Slide 104 text

Overview of Kubernetes Architecture page 0104 kube-apiserver kubelet kubelet kubelet etcd client Manifest API Object Register API Object via REST API Store API Object kube-scheduler kube-controller- manager kube-proxy kube-proxy kube-proxy

Slide 105

Slide 105 text

API Object (also Declarative) page 0105 curl https://kubernetes/apis/extensions/v1beta1/namespaces/default /replicasets/sample-rs --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)” { "kind": ”RepicaSets", "apiVersion": "extensions/v1beta1", "metadata": { "name": "sample-rs", "namespace": "default", "selfLink": "/apis/extensions/v1beta1/namespaces/default/replicasets/sample-rs", "uid": "f10cdd9e-f249-11e8-9dde-42010a92013a", "resourceVersion": "5004593", ...

Slide 106

Slide 106 text

Flow of ReplicaSet page 0106 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … etcd apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … client Manifest Register ReplicaSet Object

Slide 107

Slide 107 text

Flow of ReplicaSet page 0107 kube-apiserver kube-controller- manager Detect ReplicaSet Object Observe Diff Act control loop apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … etcd

Slide 108

Slide 108 text

Flow of ReplicaSet page 0108 kube-apiserver kube-controller- manager Register 3 Pod Object apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx … apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx … apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx … Observe Diff Act control loop apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “” … status: phase: “Pending” etcd

Slide 109

Slide 109 text

Flow of ReplicaSet page 0109 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … Detect Pod Object kube-scheduler apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “” … status: phase: “Pending” etcd

Slide 110

Slide 110 text

Flow of ReplicaSet page 0110 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … Scheduling Pod to some Node kube-scheduler apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” etcd

Slide 111

Slide 111 text

Flow of ReplicaSet page 0111 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … Detect Not running Pod kubelet apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” etcd

Slide 112

Slide 112 text

Flow of ReplicaSet page 0112 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … kubelet Container Runtime (Docker) Create pod (container) apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” etcd

Slide 113

Slide 113 text

Flow of ReplicaSet page 0113 kube-apiserver apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 … Update status.phase Pending > Running kubelet Container Runtime (Docker) apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Pending” apiVersion: apps/v1 kind: Pod metadata: name: sample-rs-xxxxx spec: nodeName: “nodeA” … status: phase: “Running” etcd

Slide 114

Slide 114 text

Agenda page 0114 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 115

Slide 115 text

Extends Kubernetes Kubernetes is becoming the framework

Slide 116

Slide 116 text

XaaS on Kubernetes page 0116 (Ceph) as a Service Rook MySQL as a Service Vitess Queue as a Service NATS ML as a Service Kubeflow • NTT SIC kubeflow/katib • docker/infrakit

Slide 117

Slide 117 text

Queue as a Service Developer Kubernetes Register NatsCluster Object NATS Operator Detect Object Deploy Queue cluster Change Management Watch objects Kubernetes Kubernetes Observe Diff Act control loop

Slide 118

Slide 118 text

CustomResourceDefinition Operator page 0118 CustomResourceDefinition '+$ "!! "#* Operator " "! )( ! " apiVersion: db.io/v1 kind: MyDB metadata: name: sample-db spec: size: 10G type: mysql version: 5.6 … DB%&)( Observe Diff Act control loop

Slide 119

Slide 119 text

Service Catalog page 0119 Service Broker Open Service Broker API Create Managed Service Instance

Slide 120

Slide 120 text

page 0120 Model and Operate Datacenter by Kubernetes at eBay - Xiaogang Xin & Tommy Mei, eBay, 2018-11-15, (https://sched.co/FuKD) • Datacenter Kubernetes Kubernetes

Slide 121

Slide 121 text

Agenda page 0121 • Cloud Native and Kubernetes • Container and Docker • Microservice and Service Mesh • Kubernetes • Kubernetes & Workloads • Kubernetes & Networking • Kubernetes is Distributed system • Extends Kubernetes • Other topics for Kubernetes

Slide 122

Slide 122 text

Other topics for Kubernetes Kubernetes is widespread in the world

Slide 123

Slide 123 text

page 0123 CNCFStandardization 01. " (!) OCI v1.0 02. # CRI 03. # CSI 04. # CNI

Slide 124

Slide 124 text

Serverless Cloud Native Landscape by CNCF page 0124

Slide 125

Slide 125 text

Conclusion page 0122 Cloud Native Container / Microservice / Service Mesh'1Cloud Native 4+2 &( Kubernetes-$0Cloud Native4+ Kubernetes Google 3# /.4+ ) !*, Platform 5"%

Slide 126

Slide 126 text

Kubernetes

Slide 127

Slide 127 text

3 I H uNs P /D 6 IBK c a io sy P 0 C 1 DD 3 I H W3 I HS M 3 I H & 72 uNs C ID 9 CD H uNs 0BH K L 4 uNs / B 8I uNs /D HI uNs 5 I I uNs uNs N snN s h l o y f fl y s N snr N tk ye & hs c N uNsu ghd v o y /2 /0 fl N s 8 KB 5 HA 3 I H dNkyl 3 I H b

Slide 128

Slide 128 text

Thank you for your attention follow me: @amsy810