
文章插图
2. 当部署新的Pod时会发生什么?

文章插图
3. Kubernetes需要跟踪Pod及其IP地址 。服务应该将流量路由到新的端点,因此IP地址和端口应该被传播 。

文章插图
4. 当另一个Pod被部署时会发生什么?

文章插图
5. 是的,完全相同的过程 。在数据库中创建了新的“行”来表示新的Pod , 并将端点进行传播 。

文章插图
6. 当删除一个Pod时会发生什么?

文章插图
7. 服务立即移除该端点,最终该Pod也会从数据库中删除 。

文章插图
8. Kubernetes对你的集群中的每一个小变化都做出反应 。

文章插图
在Kubernetes中使用端点端点在Kubernetes中被多个组件使用 。
Kube-proxy使用端点来在节点上设置iptables规则 。
因此,每当端点(Endpoint对象)发生变化时,kube-proxy会获取新的IP地址和端口列表,并编写新的iptables规则 。
- 让我们考虑一个由三个节点组成的集群,其中有两个Pod,并且没有服务 。Pod的状态被存储在etcd中 。

文章插图
2. 当你创建一个服务(Service)时会发生什么?

文章插图
3. Kubernetes创建了一个Endpoint对象 , 并收集了来自Pod的所有端点(IP地址和端口对) 。

文章插图
4. kube-proxy守护程序订阅对Endpoint的更改 。

文章插图
5. 当Endpoint被添加、删除或更新时 , kube-proxy会获取新的端点列表 。

文章插图
6. kube-proxy使用端点来在集群的每个节点上创建iptables规则 。

文章插图
Ingress控制器也使用相同的端点列表 。
Ingress控制器是集群中将外部流量路由到集群内的组件 。
当你设置一个Ingress配置文件时,通常会指定Service作为目标:
入口.yaml
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: my-ingressspec:rules:- http:paths:- backend:service:name: my-serviceport:number: 80path: /pathType: Prefix- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
相反,Ingress控制器建立了一个订阅,以便在Service的端点发生变化时收到通知 。
Ingress直接将流量路由到Pods,跳过了Service 。
正如你所想象的那样,每当Endpoint(对象)发生变化时,Ingress会获取新的IP地址和端口列表,并重新配置控制器以包括新的Pods 。
- 在这张图片中,有一个带有两个副本的Ingress控制器和一个Service的部署(Deployment) 。

文章插图
2. 如果你想通过Ingress将外部流量路由到Pods,你应该创建一个Ingress配置文件(一个YAML文件) 。

文章插图
3. 一旦你运行kubectl apply -f ingress.yaml命令,Ingress控制器就会从控制平面中获取配置文件 。

文章插图
4. Ingress的YAML文件中有一个serviceName属性,用于描述应该使用哪个Service 。

文章插图
5. Ingress控制器从Service中检索端点列表,并跳过该Service 。流量直接流向端点(Pods) 。
推荐阅读
- ps出血位怎么做,PS中的出血线该怎样使设置
- CDR怎么裁剪圆形,cdr中的裁剪工具要怎样使用
- 五禽戏功效,五禽戏中的熊戏是由什么构成的
- cdr中的剪切蒙版要怎样使用,ai释放剪切蒙版快捷键是什么
- 脚注上面的横线能怎样加,word中的脚注上的横线怎么调整长度
- 狱中的吴亦凡?搬家逃债的郑爽?被抵制的AB?47岁露脸的赵薇?
- 7个方法增加头发中的黑色素以防止过早变白
- 在应酬中要注意哪些问题 应酬中的要注意哪些行为举止
- 《外来媳妇本地郎》中的由美已回归生活,现实中的她当上音乐教授
- 何润东老婆有多美?自信优雅似模特,颜值不输圈内一线明星
