Udemy - Kubernetes - new

22
Services mumshad mannambeth

Transcript of Udemy - Kubernetes - new

Page 1: Udemy - Kubernetes - new

Services

mumshad mannambeth

Page 2: Udemy - Kubernetes - new

Services

Services

Services Servi

ces

Services

Page 3: Udemy - Kubernetes - new

Service

Node

192.168.1.2

10.244.0.0

POD

10.244.0.2

192.168.1.10

SSH>curl http://10.244.0.2

Hello World!>curl http://192.168.1.2

Hello World! ?Service

3000

8:30008

Page 4: Udemy - Kubernetes - new

Services Types

NodePort ClusterIP LoadBalancer

Page 5: Udemy - Kubernetes - new

NodePort

Page 6: Udemy - Kubernetes - new

Service - NodePort

Node

192.168.1.2

10.244.0.0

POD

10.244.0.2

192.168.1.10

>curl http://192.168.1.2:30008

Hello World! ?Service

3000

8

Page 7: Udemy - Kubernetes - new

Service - NodePort

Node

POD

10.244.0.2

Service

3000

8

80

80

TargetPort1Port2

NodePort3

10.1

06.1

.12

Range: 30000 - 32767

Page 8: Udemy - Kubernetes - new

Service - NodePort

Node

POD

10.244.0.2

Service

3000

8

80

80

TargetPort1Port2

NodePort3

10.1

06.1

.12

Range: 30000 - 32767

apiVersion: kind:metadata:

spec:

service-definition.yml

v1Service

name: myapp-service

type: NodePortports:- targetPort: 80port: 80nodePort: 30008

*

Page 9: Udemy - Kubernetes - new

Service - NodePort

apiVersion: kind:metadata:

spec:

service-definition.yml

v1Service

name: myapp-service

type: NodePortports:- targetPort: 80port: 80nodePort: 30008

apiVersion: kind:

metadata:name: myapp-podlabels:

spec:containers:- name: nginx-containerimage: nginx

pod-definition.yml

v1Pod

app: myapptype: front-end

selector:

> kubectl create –f service-definition.ymlservice "myapp-service" created

> kubectl get servicesNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 <none> 443/TCP 16dmyapp-service NodePort 10.106.127.123 <none> 80:30008/TCP 5m

> curl http://192.168.1.2:30008

Page 10: Udemy - Kubernetes - new

Service - NodePort

Node

192.168.1.2

POD

10.244.0.2

Service

30008

POD

10.244.0.3

POD

10.244.0.4

labels:app: myapp

selector:app: myapp

Algorithm: RandomSessionAffinity: Yes

Page 11: Udemy - Kubernetes - new

NodeNode

Service - NodePort

Node

192.168.1.2

POD

10.244.0.2

Service

30008

POD

10.244.0.3

POD

10.244.0.4

192.168.1.3 192.168.1.430008 30008

>curl http://192.168.1.2:30008

>curl http://192.168.1.3:30008

>curl http://192.168.1.4:30008

Page 12: Udemy - Kubernetes - new

DemoService - NodePort

Page 13: Udemy - Kubernetes - new

ClusterIP

mumshad mannambeth

Page 14: Udemy - Kubernetes - new

ClusterIP

POD

10.244.0.2

POD

10.244.0.3

POD

10.244.0.4

POD

10.244.0.5

POD

10.244.0.6

POD

10.244.0.7

POD

10.244.0.8

POD

10.244.0.9

POD

10.244.0.1010.244.0.5

back-end

front-end

back-end

redis

redis

Page 15: Udemy - Kubernetes - new

apiVersion: kind:metadata:

spec:

service-definition.yml

v1Service

name: back-end

type: ClusterIPports:- targetPort: 80port: 80

selector:

apiVersion: kind:

metadata:name: myapp-podlabels:

spec:containers:- name: nginx-containerimage: nginx

pod-definition.yml

v1Pod

app: myapptype: back-end

> kubectl create –f service-definition.ymlservice “back-end" created

> kubectl get servicesNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 <none> 443/TCP 16dback-end ClusterIP 10.106.127.123 <none> 80/TCP 2m

Page 16: Udemy - Kubernetes - new

Service

Voting-app-Pod

8080

redis-pod

6379

RedisService

6379 apiVersion: v1kind: Servicemetadata:

name: redisspec:

ports:- port: 6379

targetPort: 6379selector:

name: redis-podapp: demo-voting-app

Not specified in source code. Default 6379 assumed

Page 17: Udemy - Kubernetes - new

Service

Voting-app-Pod

8080

redis-pod

6379

RedisService

7000 apiVersion: v1kind: Servicemetadata:

name: some-redis-servicespec:

ports:- port: 7000

targetPort: 6379selector:

name: redis-podapp: demo-voting-app

Page 18: Udemy - Kubernetes - new

DemoService - NodePort

Page 19: Udemy - Kubernetes - new

Referenceshttps://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

Page 20: Udemy - Kubernetes - new

Service -LoadBalancer

mumshad mannambeth

Page 21: Udemy - Kubernetes - new

NodeNode

Services

Node

192.168.1.2

POD

10.244.1.3

Service

30008

POD

10.244.0.3

POD

10.244.2.3

192.168.1.3 192.168.1.430008 30008

>curl http://192.168.1.2:30008

>curl http://192.168.1.3:30008

>curl http://192.168.1.4:30008

POD

10.244.1.4

POD

10.244.0.4

POD

10.244.2.4

Service - ClusterIP

- NodePort

>curl http://myapp.com

Load BalancerNative Load Balancer

Page 22: Udemy - Kubernetes - new

apiVersion: kind:metadata:

spec:

service-definition.yml

v1Service

name: front-end

type:ports:- targetPort: 80port: 80

selector:app: myapptype: front-end

NodePortLoadBalancer

> kubectl create –f service-definition.ymlservice “front-end" created

> kubectl get servicesNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 <none> 443/TCP 16dfront-end LoaBalancer 10.106.127.123 <Pending> 80/TCP 2m