Kubernetes的服务注册、发现以及消费方调用服务的整个过程

Kubernetes的服务注册、发现以及消费方调用服务的整个过程

Kubernetes的服务注册、发现以及消费方调用服务的整个过程。

Kubernetes的服务注册、发现以及消费方调用服务的整个过程

1. Service注册

Podicon发布的时候,kubelet负责创建Pod并把Pod的IP地址注册到Etcd;

Service发布的时候,Kubernetes会为Service分配ClusterIP,并把ServiceName和ClusterIP的对应关系记录到Etcd里,同时也会记录ClusterIP和PodIP的对应关系

2. 服务发现和负载均衡

每个Kuberntes节点上都运行Kube-Proxy组件,Kube-Proxy组件会监听Apiserver,并得到Service的ClusterIP和PodIP的映射列表。得到ClusterIP和PodIP的映射列表之后,通过负载均衡算法就可以得到某一个PodIP,之后通过linux iptable机制就可以把流量转发到对应的Pod里。

3. 消费者调用

消费者pod在访问某个目标服务的时候,他通过ClusterIP发起调用,这个ClusterIP的调用的流量会被本地iptables所截获,然后通过负载均衡转发到相应的pod实例上去,这就是服务实际调用的过程。其实消费者pod也不是直接调用ClusterIP的,而是先调用ServiceName,因为ClusterIP也是会变化的,而ServiceName是不变的。而ServiceName和CluserIP之间的动态变化关系则是由Kube-DNS来维护的。

分享到 :

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注