services
- 1、概述
- 2、存在的意义
-
- [2.1 服务发现](#2.1 服务发现)
- [2.2 负载均衡](#2.2 负载均衡)
- 3、pod与service的关系
- [4、service 三种类型](#4、service 三种类型)
-
- [4.1 、 ClusterIP](#4.1 、 ClusterIP)
- [4.2 、NodePort](#4.2 、NodePort)
- [4.3 、LoadBalancer](#4.3 、LoadBalancer)
1、概述
- Service 是 Kubernetes 最核心概念,通过创建 Service,可以为一组具有相同功能的容器应 用提供一个统一的入口地 址,并且将请求负载分发到后端的各个容器应用上。
2、存在的意义
2.1 服务发现
- 比如前端pod需要调用后端pod,需要通过server进行查找
2.2 负载均衡
- 一个前端pod通过service负载均衡到不同的pod上,根据pod的使用量等信息进行均衡分配
3、pod与service的关系
- 通过label和Selector标签建立连接
4、service 三种类型
bash
[root@master example]# kubectl expose deployment web --port=80 --target-port=80 --dry-run -o yaml > webservice.yaml # web的pod是先创建好的,在此基础上配置service信息
[root@master example]# cat webservice.yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: web
name: web
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: web
type: service的三种类型 ##直接修改此处即可
status:
loadBalancer: {}
4.1 、 ClusterIP
- 集群内部访问。集群内部pod间互相访问
4.2 、NodePort
- 对外访问应用时使用。比如nginx暴露时候
4.3 、LoadBalancer
- 对外访问应用,也可以用于公有云,调用公有云中的操作。可以连接到公有云中的服务器。