概念
在k8s中可以通过pod的ip来进行访问,但是pod的ip不是固定的,而service资源会对提供同一个服务的多个pod进行聚合,提供一个统一的入口,通过访问service的入口地址就能访问到后面的pod服务。
Service存在的意义
防止pod失联(服务发现)
service充当注册中心的作用,当前有多个前端、后端pod时,前端可以通过service访问后端。
定义pod访问策略(负载均衡)
前端pod访问后端pod时,中间会通过service,这里service还能辺负载均衡,将前端请求分发到各个后端pod。
service资源类型
ClusterIP:集群内部访问,默认方式
NodePort:对外访问应用使用
LoadBalancer:对外访问应用使用,公有云
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| ~]# kubectl get svc nginx -o yaml apiVersion: v1 kind: Service metadata: creationTimestamp: "2022-07-14T14:01:34Z" labels: app: nginx name: nginx namespace: default resourceVersion: "266455" selfLink: /api/v1/namespaces/default/services/nginx uid: d45f429a-23b9-435f-a7ed-704996bb1999 spec: clusterIP: 10.1.160.174 externalTrafficPolicy: Cluster ports: - nodePort: 30619 port: 80 protocol: TCP targetPort: 80 selector: app: nginx sessionAffinity: None type: NodePort status: loadBalancer: {}
|