负载均衡
集群内如何访问一个微服务
当我们使用kubernetes发布我们的微服务后(deployment对象),那么在其他的容器中,我们要怎样去访问这个微服务呢?
假设我们发布了一个服务(deployment),名字叫web1
,它提供8080端口的服务,yaml文件如下:
此时,我们再创建一个同名的Service
对象,那么我们便可以在其他的容器中通过curl web1:8080
的方式来访问该微服务,如果是其他命名空间的Pod,则可以通过curl web1.default:8080
来访问该微服务
Service
为什么我们创建了一个与deployment
同名的service
对象,就可以通过web1:8080
来访问这个微服务了呢?这个微服务发布了三个实例(Pod),那么这三个Pod之间是如何实现负载均衡的呢?
我们先来回答最后一个问题,这三个Pod之间是如何实现负载均衡的。
每创建一个Service
对象,k8s便会自动生成一个同名的Endpoints
对象。我们创建了如上的Service
对象后,通过kubectl get ep web1
可以看到看到该Service
对应的Endpoints
Last updated
Was this helpful?