Slide 1

Slide 1 text

2 . 1 1 1 5 1 2 . -1 4 3 1

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

• ,

Slide 4

Slide 4 text

Slide 5

Slide 5 text

) C • 0 5 C A2 2 • ( . C • 2 C C • ( C • . C C

Slide 6

Slide 6 text

+ + + + +

Slide 7

Slide 7 text

-

Slide 8

Slide 8 text

- // /

Slide 9

Slide 9 text

- &

Slide 10

Slide 10 text

- - ,

Slide 11

Slide 11 text

- 35 4 / 0: 7592 : ) . , • 7592 . 2 5. 2 2 07529 • 7592 : 329 ( 2 2 • 7592 2775 2 2 2 07529 • 7592 029 .71:3 . ( 2 2 • 7592 07. .91 :51 E 07 12 1 . 2

Slide 12

Slide 12 text

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

• • • •

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Slide 17

Slide 17 text

• • • • • • • • ) /) ) ( )

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

) , , • ( , • • ( •

Slide 20

Slide 20 text

, • • • • , /-) ( )

Slide 21

Slide 21 text

$ docker run -ti ¥ ubuntu bash

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

+ /-) ( )

Slide 24

Slide 24 text

Slide 25

Slide 25 text

• •

Slide 26

Slide 26 text

• • • ,

Slide 27

Slide 27 text

) • ) ( • • • (

Slide 28

Slide 28 text

Slide 29

Slide 29 text

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

• •

Slide 32

Slide 32 text

/

Slide 33

Slide 33 text

• • • • •

Slide 34

Slide 34 text

◎ ○ ○ ╳ ╳ △ △ ○ ) /) ) ( )

Slide 35

Slide 35 text

Slide 36

Slide 36 text

- -) - (

Slide 37

Slide 37 text

$ cat serve.go time.Sleep(5 * time.Second) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { log.Printf("%s %s %s %s", r.Method, r.URL.String(), r.RemoteAddr, r.UserAgent()) w.Write([]byte(*greeting + "¥n")) })

Slide 38

Slide 38 text

$ cat Dockerfile FROM golang:1.12-alpine RUN go build serve.go CMD ["./serve", "--listen=:80", "--greeting=Hello, Docker!"] $ docker build --tag $TAG . Successfully built 728b5f3086be Successfully tagged docker- registry.linecorp.com/christopher- pickel/hello-world:latest

Slide 39

Slide 39 text

$ docker run -rm --name=demo ¥ --publish 127.0.0.1:2080:80/tcp ¥ $TAG 2019/07/25 06:34:41 starting 2019/07/25 06:34:46 listening on :80 2019/07/25 06:34:52 GET / 172.17.0.1:41676 curl/7.54.0 $ curl localhost:2080 Hello, Docker!

Slide 40

Slide 40 text

$ docker exec -ti demo bash bash-4.4# ps PID USER TIME COMMAND 1 root 0:00 ./serve --listen=… 12 root 0:00 bash 22 root 0:00 ps bash-4.4# curl localhost Hello, Docker! 2019/07/25 06:36:27 GET / 127.0.0.1:36774 curl/7.64.0

Slide 41

Slide 41 text

bash-4.4# file ./serve serve: ELF 64-bit LSB executable, x86-64… bash-4.4# uname Linux bash-4.4# exit $ uname Darwin

Slide 42

Slide 42 text

$ cat kube.yaml containers: - name: hello image: docker-registry.linecorp.com/ch… args: ["./serve", "--listen=:80", "--greeting=Hello, Kubernetes!"] readinessProbe: httpGet: path: /healthz port: 80

Slide 43

Slide 43 text

$ kubectl apply -f kube.yaml namespace/demo created deployment.apps/hello created service/hello created $ curl $(minikube ip):$PORT Hello, Kubernetes! namespace/demo created deployment.apps/hello created service/hello created

Slide 44

Slide 44 text

$ kubectl logs hello-674f6956d-97kcb 2019/07/23 09:11:34 starting 2019/07/23 09:11:39 listening on :80 2019/07/23 09:11:44 GET /healthz 172.17.0.1:39214 kube-probe/1.15 2019/07/23 09:11:49 GET /healthz 172.17.0.1:39214 kube-probe/1.15 2019/07/23 09:11:51 GET / 172.17.0.1:63338 curl/7.54.0

Slide 45

Slide 45 text

$ kubectl edit deployment hello (s/replicas: 1/replicas: 10/) $ kubectl edit deployment hello (s/Hello, Kubernetes/Hello, Rollouts/) $ kubectl rollout status deployment hello Waiting for deployment "hello" rollout to finish: 9 of 10 updated replicas are available... deployment "hello" successfully rolled out

Slide 46

Slide 46 text

- -) - (

Slide 47

Slide 47 text

No content