音乐网站设计总结,wordpress 转移数据库,凡克,最新版高性能网站建设指南背景说明 有部分中间件是跑在Kubernetes集群之外#xff0c;我们希望通过service的方式来访问集群外的中间件#xff0c;比如访问我们k8s集群外的elasticsearch集群。 ES节点本身又处在一个负载均衡IP#xff1a;192.168.100.100 之后#xff0c;但是代理的端口号是9202我们希望通过service的方式来访问集群外的中间件比如访问我们k8s集群外的elasticsearch集群。 ES节点本身又处在一个负载均衡IP192.168.100.100 之后但是代理的端口号是9202非es默认的9200。 工作原理 k8s通过endpoint指向一个负载均衡IP和port再创建一个相同name的service就可以把流量导向到es集群了。 Endpoints 是手动定义的后端服务的地址和端口。我们这里会把Endpoints 指向192.168.100.100并且监听在端口 9202。这个 IP 和端口是外部负载均衡器的地址它负责将流量转发到实际的后端服务例如 Pod 的 9200 端口。 Service 是 Kubernetes 中用于暴露服务的抽象资源。Service 的 port 是 9200它在 k8s 集群内暴露了一个虚拟端口 9200。targetPort 是 9202这表示流量会通过 Service 的 9200 端口进入然后被转发到 Endpoints 中定义的 9202 端口 yaml文件
apiVersion: v1
kind: Endpoints
metadata:name: es-svcnamespace: es
subsets:
- addresses:- ip: 192.168.100.100ports:- port: 9202protocol: TCP
---
apiVersion: v1
kind: Servicename: es-svcnamespace: es
spec:ports:- port: 9200protocol: TCPtargetPort: 9202sessionAffinity: Nonetype: ClusterIP
流量路径 应用例如集群内的其他 Pod通过 es-svc.es.svc.cluster.local:9200 或者 es-svc.es:9200访问服务。 Service 接收到流量后将流量转发到 Endpoints 中定义的 192.168.100.100:9202。 负载均衡器接收到流量后再将流量转发到实际的后端服务例如 Pod 的 9200 端口。 Service 的 port 和 targetPort port: 9200这是集群内暴露的端口客户端通过这个端口访问服务。 targetPort: 9202这是流量被转发到的端口对应于 Endpoints 中定义的负载均衡器的端口。 Endpoints 的 port port: 9202这是负载均衡器的端口它负责将流量转发到实际的后端服务。 type: ClusterIP这是一个普通的 ClusterIP 类型的 Service它会分配一个虚拟 IP 地址客户端可以通过这个虚拟 IP 和端口 9200 访问服务。 sessionAffinity: None这表示不启用会话亲和性流量会被随机分配到后端服务。我们可以根据需求保留或删除这个字段。