1. k8s-service三种常用类型
-
ClusterIP:集群内部使用
-
NodePort:对外暴露应用(集群外)
-
LoadBalancer:对外暴露应用,适用公有云
1.1 ClusterIP:集群内部使用
-
ClusterIP:默认,分配一个稳定的IP地址,即VIP,只能在集群内部访问。
-
示例代码:
spec: type: ClusterIP ports: - port: 80 protocol: TCP targetPort: 80 selector: app: web
-
示例图片
1.2 NodePort:对外暴露应用(集群外)
-
NodePort:在每个节点上启用一个端口来暴露服务,可以在集群
- 外部访问。也会分配一个稳定内部集群IP地址。
- 访问地址:<任意NodeIP>:
- 端口范围:30000-32767
-
示例代码:
spec: type: NodePort ports: - port: 80 protocol: TCP targetPort: 80 nodePort: 30001 selector: app: web
-
示例图片
-
NodePort:
会在每台Node上监听端口接收用户流量,在实际情况下,对用户暴露的只会有一个IP和端口,那这么多台Node该使用哪台让用户访问呢?
这时就需要前面加一个公网负载均衡器为项目提供统一访问入口了。 -
示例图片
1.3 LoadBalancer:对外暴露应用,适用公有云
-
LoadBalancer:
与NodePort类似,在每个节点上启用一个端口来暴露服务。除此之外,Kubernetes会请求底层云平台(例如阿里云、腾讯云、AWS等)上的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去。
-
示例图像