Udemy - Kubernetes - new
Transcript of Udemy - Kubernetes - new
Services
mumshad mannambeth
Services
Services
Services Servi
ces
Services
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
Services Types
NodePort ClusterIP LoadBalancer
NodePort
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
Service - NodePort
Node
POD
10.244.0.2
Service
3000
8
80
80
TargetPort1Port2
NodePort3
10.1
06.1
.12
Range: 30000 - 32767
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
*
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
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
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
DemoService - NodePort
ClusterIP
mumshad mannambeth
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
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
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
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
DemoService - NodePort
Referenceshttps://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
Service -LoadBalancer
mumshad mannambeth
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
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