Slide 1

Slide 1 text

.JOJ5FDI5BMLBU(3&& JOD ,B[VLJ4VEBLTVEB![MBCDPKQ !TVQFSCSPUIFST )PX,VCFSOFUFTXPSLT

Slide 2

Slide 2 text

갭歊♧鰛,B[VLJ4VEB Ӝ 4PGUXBSF&OHJOFFS!;-BC Ӝ !TVQFSCSPUIFST Ӝ ,VCFSOFUFT.FFUVQ5PLZP

Slide 3

Slide 3 text

،آؑٝت 8IBUJT,VCFSOFUFT 8IZ,VCFSOFUFT )PX,VCFSOFUFTXPSLT

Slide 4

Slide 4 text

What is Kubernetes?

Slide 5

Slide 5 text

,VCFSOFUFT Ӝ ؝ٝذشؔ٦؛أزٖ٦ءّٝخ٦ٕ ؝ٝذشךꂁ⪒ծ鏣㹀ծ盖椚׾遤ֲ Ӝ ĜĦĔėģğήĥęςؘٔءٍ铂ד乼菭㡦 Ӝ (PPHMFך爡ⰻءأذيַ׵؎ٝأػ؎،ׁ׸׋ “Kubernetes is open source—a contrast to Borg and Omega,
 which were developed as purely Google-internal systems. “ Borg, Omega, and Kubernetes
 https://research.google.com/pubs/pub44843.html

Slide 6

Slide 6 text

Google - Site Reliability Engineering

Slide 7

Slide 7 text

https://twitter.com/brendandburns/status/585479466648018944

Slide 8

Slide 8 text

➭ךفٓحزؿؓ٦يהך嫰鯰 Ӝ *OGSBTUSVDUVSFBTB 4FSWJDF Ӝ 7. ر؍أؙ طحز ٙ٦ؙ ,VCFSOFUFT Ӝ $POUBJOFSBTB4FSWJDF Ӝ ؝ٝذشך盖椚ծ㹋遤 Ӝ ֮׵ײ׷،فٔ؛٦ءّٝ $MPVE'PVOESZ Ӝ 1MBUGPSNBTB4FSWJDF Ӝ ؝٦سַ׵رفٗ؎ Ӝ )551ծ"1*ծ8FC 0QFO4UBDL

Slide 9

Slide 9 text

Why Kubernetes?

Slide 10

Slide 10 text

,VCFSOFUFTכؔ٦فٝד֮׷ Ӝ ؔ٦فٝا٦أاؿزؐؑ، HJUIVCDPNLVCFSOFUFTLVCFSOFUFT "QBDIF-JDFOTF Ӝ ؔ٦فٝرؠ؎ٝ HJUIVCDPNLVCFSOFUFTDPNNVOJUZ Ӝ ؔ٦فٝ؝ىُصذ؍ 4QFDJBM*OUFSFTU(SPVQT 4*(T 4MBDL 4UBDL0WFSPX Ⰻ⚅歲ד⟃♳ךى٦ز،حف Ӝ $MPVE/BUJWF$PNQVUJOH'PVOEBUJPO $/$'

Slide 11

Slide 11 text

$VSSFOU1SPKFDUT Kubernetes
 Orchestration Prometheus
 Monitoring OpenTracing
 Tracing flutentd
 Logging Linkerd
 Service Mesh GRPC
 Remote Procedure Call CoreDNS
 Service Discovery Containerd
 Container Runtime rkt
 Container Runtime CNI
 Networking https://www.cncf.io/projects/

Slide 12

Slide 12 text

https://www.cncf.io/about/members/ 1MBUJOVN.FNCFST

Slide 13

Slide 13 text

Slide 14

Slide 14 text

Slide 15

Slide 15 text

1MBUJOVN.FNCFST https://www.cncf.io/about/members/

Slide 16

Slide 16 text

,VCFSOFUFTכه٦ةـٕד֮׷ Ӝ DMPVEQSPWJEFS --# ـٗحؙأزٖ٦آזוך乼⡲׾䬄韋⻉ ($1 "84 "[VSF 0QFO4UBDL  Ӝ $/* $POUBJOFS/FUXPSL*OUFSGBDF $BMJDP 'MBOOFM 0QFOW4XJUDI 8FBWF  Ӝ $POUBJOFS3VOUJNF %PDLFS SLU DSJP

Slide 17

Slide 17 text

,VCFSOFUFTכ䧭ꞿ׃גְ׷ Kubernetes Docker Swarm Apache Mesos All Time Statistics Contributors 1,473 201 288 Commits 49,619 3,331 24,308 12 Month Statistics Contributors 756 66 155 Commits 19,223 567 7,946 https://www.openhub.net/p/_compare?project_0=Kubernetes&project_1=docker+swarm&project_2=Apache+Mesos As of 17/06/12

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

How Kubernetes works

Slide 20

Slide 20 text

،٦ؗذؙثٍ CLI API UI Master Node 1 Node “n”

Slide 21

Slide 21 text

؝،؝ٝإفز Ӝ 1PET Ӝ 3FQMJDB4FUT Ӝ %FQMPZNFOUT Ӝ 4FSWJDFT

Slide 22

Slide 22 text

1PET Ӝ 醱侧ך؝ٝذشה
 醱侧ךنُٔ٦ي Ӝ رفٗ؎ך剑㼭⽃⡘ Ӝ *1QFS1PE 1PE Volume Web Server Agent

Slide 23

Slide 23 text

1PET Ӝ 醱侧ך؝ٝذشה
 醱侧ךنُٔ٦ي Ӝ رفٗ؎ך剑㼭⽃⡘ Ӝ *1QFS1PE apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.13.3 ports: - containerPort: 80

Slide 24

Slide 24 text

3FQMJDB4FUT Ӝ /⦐ך1PEָ㹋遤ׁ׸גְ׷朐䡾׾⥂א 3FQMJDB4FU Replicas: 2 Selector: app=web Pod
 Template 1PE app web 1PE app web

Slide 25

Slide 25 text

3FQMJDB4FUT Ӝ /⦐ך1PEָ㹋遤ׁ׸גְ׷朐䡾׾⥂א 3FQMJDB4FU Replicas: 2 Selector: app=web Pod
 Template 1PE app web

Slide 26

Slide 26 text

3FQMJDB4FUT Ӝ /⦐ך1PEָ㹋遤ׁ׸גְ׷朐䡾׾⥂א 3FQMJDB4FU Replicas: 2 Selector: app=web Pod
 Template 1PE app web 1PE app web

Slide 27

Slide 27 text

3FQMJDB4FUT Ӝ /⦐ך1PEָ
 㹋遤ׁ׸גְ׷朐䡾׾⥂א apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.13.3 ports: - containerPort: 80

Slide 28

Slide 28 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v1 Pod
 Template 1PE app:v1 1PE app:v1 34 Replicas: 2 app:v1 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 29

Slide 29 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v1 34 Replicas: 2 app:v1 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 30

Slide 30 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v1 34 34 Replicas: 2 app:v1 Replicas: 1 app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 31

Slide 31 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v1 34 34 Replicas: 2 app:v1 1PE app:v2 Replicas: 1 app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 32

Slide 32 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v1 34 34 Replicas: 1 app:v1 1PE app:v2 Replicas: 1 app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 33

Slide 33 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 34 34 Replicas: 1 app:v1 1PE app:v2 Replicas: 1 app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 34

Slide 34 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 34 34 Replicas: 2 app:v2 Replicas: 1 app:v1 1PE app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 35

Slide 35 text

%FQMPZNFOUT %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v2 34 34 Replicas: 2 app:v2 Replicas: 1 app:v1 1PE app:v2 Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ

Slide 36

Slide 36 text

%FQMPZNFOUT Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v1 1PE app:v2 34 34 Replicas: 2 app:v2 Replicas: 0 app:v1 1PE app:v2

Slide 37

Slide 37 text

%FQMPZNFOUT Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ %FQMPZNFOU Replicas: 2 Selector: app=web
 image: app:v2 Pod
 Template 1PE app:v2 34 34 Replicas: 2 app:v2 Replicas: 0 app:v1 1PE app:v2

Slide 38

Slide 38 text

%FQMPZNFOUT Ӝ ٗ٦ؚٔٝ،حفر٦ز Ӝ ٗ٦ٕغحؙ apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.13.3 ports: - containerPort: 80

Slide 39

Slide 39 text

4FSWJDFT Ӝ ⟎䟝*1הه٦ز Ӝ ٓكٕإؙٖةח״׷
 1PEךؚٕ٦ؾؚٝ Ӝ ؟٦ؽأة؎ف $MVTUFS*1 /PEF1PSU -PBE#BMBODFS  1PE app web 1PE app web 3FQMJDB4FU 4FSWJDF VIP: 10.0.0.249 Selector: app=web

Slide 40

Slide 40 text

4FSWJDFT Ӝ ⟎䟝*1הه٦ز Ӝ ٓكٕإؙٖةח״׷
 1PEךؚٕ٦ؾؚٝ Ӝ ؟٦ؽأة؎ف $MVTUFS*1 /PEF1PSU -PBE#BMBODFS  apiVersion: v1 kind: Service metadata: name: nginx spec: type: ClusterIP selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80

Slide 41

Slide 41 text

*OHSFTT Ӝ -頾蚚ⴓ侔 Ӝ غ٦ثٍٕمأز Ӝ ػأח״׷䮶׶ⴓֽ Ӝ 5-4穄畭 4FSWJDFGPP 4FSWJDFCBS *OHSFTT /foo /bar example.com

Slide 42

Slide 42 text

*OHSFTT Ӝ -頾蚚ⴓ侔 Ӝ غ٦ثٍٕمأز Ӝ ػأח״׷䮶׶ⴓֽ Ӝ 5-4穄畭 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: example-com spec: rules: - host: example.com http: paths: - path: /foo backend: serviceName: foo servicePort: 80 - path: /bar backend: serviceName: bar servicePort: 80

Slide 43

Slide 43 text

׉ך➭ Ӝ /BNFTQBDFTؙٓأة׾ⴓⶴׅ׷ Ӝ $POH.BQT،فٔ؛٦ءّٝה鏣㹀ךⴓꨄ Ӝ 4FDSFUT،فٔ؛٦ءّٝהء٦ؙٖحزךⴓꨄ Ӝ 1FSTJTUFOU7PMVNFT 1FSTJTUFOU7PMVNF$MBJNT 4UPSBHF$MBTT宕竲نُٔ٦ي Ӝ 4UBUFGVM4FUTأذ٦زؿٕ،فٔ؛٦ءّٝ Ӝ +PCTٙٝءّحزآّـ Ӝ $SPO+PCآّـך㹀劍㹋遤 Ӝ %BFNPO4FUTⰋגךظ٦سד1PE׾㹋遤 Ӝ )PMJ[POUBM1PE"VUP4DBMFSؔ٦زأ؛٦ٕ

Slide 44

Slide 44 text

،٦ؗذؙثٍ CLI API UI Master Node 1 Node “n”

Slide 45

Slide 45 text

،٦ؗذؙثٍ $POUSPMMFS
 .BOBHFS FUDE 4DIFEVMFS BQJTFSWFS CLI API UI Master Node 1 Node “n” $POUBJOFS
 3VOUJNF LVCFMFU LVCFMFU $POUBJOFS
 3VOUJNF

Slide 46

Slide 46 text

FUDE㈓♧ךر٦ةأز، $POUSPMMFS
 .BOBHFS FUDE 4DIFEVMFS BQJTFSWFS Master Ӝ $1㘗ךⴓ侔ؗ٦غُٔ٦أز، Ӝ أذ٦زכⰋגFUDEח⥂㶷ׁ׸׷ Ӝ ؐؓحث׾؟ه٦ز׃גֶ׶ծ
 أذ٦زך㢌刿כ׋׌׍ח➭ך
 ؝ٝه٦طٝزח鸐濼ׁ׸׷ Ӝ IUUQHJUIVCDPNDPSFPTFUDE CLI API UI

Slide 47

Slide 47 text

BQJTFSWFS3&45 $36% 钠鏾钠〳 $POUSPMMFS
 .BOBHFS FUDE 4DIFEVMFS BQJTFSWFS Master Ӝ 3&45Ⳣ椚הغٔر٦ءّٝ Ӝ 钠鏾钠〳 Ӝ ㈓♧FUDEחر٦ة׾剅ֹ鴥׬ Ӝ ؽآطأٗآحؙכ㹋鄲ׁ׸גְזְ CLI API UI

Slide 48

Slide 48 text

4DIFEVMFS1PEךأ؛آُ٦ؚٔٝ $POUSPMMFS
 .BOBHFS FUDE 4DIFEVMFS BQJTFSWFS Master Ӝ 1PEךٔا٦أ銲実זו罋䣁׃ג
 黝ⴖז/PEFחأ؛آُ٦ؚׅٔٝ׷ Ӝ أ؛آُ٦ٕׅ׷/PEF׾
 䭷㹀ׅ׷ֿה׮דֹ׷ resources: requests: memory: "64Mi" cpu: "250m" CLI API UI

Slide 49

Slide 49 text

$POUSPMMFS.BOBHFSؽآطأٗآحؙ $POUSPMMFS
 .BOBHFS FUDE 4DIFEVMFS BQJTFSWFS Master Ӝ 3FQMJDB4FUT 4FSWJDFTזוծٔا٦أך
 ؽآطأٗآحָؙ㹋鄲ׁ׸גְ׷ CLI API UI

Slide 50

Slide 50 text

LVCFMFU $POUBJOFS
 3VOUJNF Node $POUBJOFS3VOUJNF BQJTFSWFS Master Ӝ ؝ٝذش؎ً٦آך《䖤ה㹋遤 Ӝ $3*$POUBJOFS3VOUJNF*OUFSGBDF %PDLFS SLU DSJP

Slide 51

Slide 51 text

LVCFMFU $POUBJOFS
 3VOUJNF Node LVCFMFU BQJTFSWFS Master Ӝ /PEFח䌢꽎ׅ׷ؒ٦آؑٝز Ӝ BQJTFSWFS׾ؐؓحث׃גծ荈魦ך
 /PEFח1PEָأ؛آُ٦ׁٕ׸׷ה
 ؝ٝذش؎ً٦آך《䖤ծ㹋遤׾遤ֲ Ӝ ؝ٝذشך朐䡾ח䘔ׄגBQJTFSWFS׾
 鸐ׄג1PEךأذ٦ز׾刿倜ׅ׷

Slide 52

Slide 52 text

)PXB1PEJTTDIFEVMFE Core Kubernetes: Jazz Improv over Orchestration

Slide 53

Slide 53 text

״׶鑫׃ֻ濼׷חכ Ӝ LVCFSOFUFTJP Ӝ TMBDLLTJPKQVTFST KQFWFOUT Ӝ ,VCFSOFUFT.FFUVQ5PLZPCJUMZLTKQ Ӝ ,VCFSOFUFT6QBOE3VOOJOH03FJMMZ.FEJB Ӝ #PSH 0NFHB BOE,VCFSOFUFT

Slide 54

Slide 54 text

5IBOLT Ӝ 4MJEF CJUMZIPXLTXPSLT Ӝ 2VFTUJPOT ,B[VLJ4VEBLTVEB![MBCDPKQ !TVQFSCSPUIFST