【Kubernetes】常见面试题汇总(五)
目录
13.简述 Kubernetes Replica Set 和 Replication Controller 之间有什么区别?
14.简述 kube-proxy 作用?
15.简述 kube-proxy iptables 原理?
16.简述 kube-proxy ipvs 原理?
13.简述 Kubernetes Replica Set 和 Replication Controller 之间有什么区别?
- Replica Set 和 Replication Controller 类似,都是确保在任何给定时间运行指定数量的 Pod 副本。
- 不同之处在于 RS 使用基于集合的选择器,而 RC 使用基于权限的选择器。
14.简述 kube-proxy 作用?
- kube-proxy 运行在所有节点上,它监听 apiserver 中 service 和 endpoint 的变化情况,创建路由规则以提供服务 IP 和负载均衡功能。
- 简单理解此进程是 Service 的透明代理兼负载均衡器,其核心功能是将到某个 Service 的访问请求转发到后端的多个 Pod 实例上。
15.简述 kube-proxy iptables 原理?
- Kubernetes 从 1.2 版本开始,将 iptables 作为 kube-proxy 的默认模式。
- iptables 模式下的 kube-proxy 不再起到 Proxy 的作用,其核心功能:
通过 API Server 的 Watch 接口实时跟踪 Service 与 Endpoint 的变更信息,并更新对应的 iptables 规则,Client 的请求流量则通过 iptables 的 NAT 机制“直接路由”到目标 Pod.
16.简述 kube-proxy ipvs 原理?
- IPVS 在 Kubernetes1.11 中升级为 GA 稳定版。
- IPVS 则专门用于高性能负载均衡,并使用更高效的数据结构(Hash表),允许几乎无限的规模扩张,因此被 kube-proxy 采纳为最新模式。
- 在 IPVS 模式下,使用 iptables 的扩展 ipset,而不是直接调用 iptables 来生成规则链。
- iptables 规则链是一个线性的数据结构,ipset 则引入了带索引的数据结构,因此当规则很多时,也可以很高效地查找和匹配。
- 可以将 ipset 简单理解为一个 IP(段)的集合,这个集合的内容可以是 IP 地址、IP 网段、端口等,iptables 可以直接添加规则对这个“可变的集合”进行操作,这样做的好处在于可以大大减少 iptables 规则的数量,从而减少性能损耗。