【Kubernetes知识点问答题】Service 发现

目录

 

1. Kubernetes 如何在集群的 Pod 之间提供网络服务?

2. 解释 iptables 和 IPVS 代理模式 Service 的区别。

3. 举例说明 ClusterIP 类型 Service 的用法。

4. 举例说明 NodePort 类型 Service 的用法。

5. 举例说明 Headless 类型 Service 的用法。

6. 详细说明 Ingress 的实现原理和它所实现的功能。


1. Kubernetes 如何在集群的 Pod 之间提供网络服务?

K8s 使用 Service 让一组 Pod 可在网络上被访问并让客户端就能与之交互。
 
Service API 是 K8s 的组成部分,它是将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。每个 Service 对象定义端点的一个逻辑集合(通常这些端点就是 Pod)以及如何访问到这些 Pod 的策略。

2. 解释 iptables IPVS 代理模式 Service 的区别。

(1)iptables 代理模式的 Service:
 
① kube-proxy 会监视 K8s 控制节点对 Service 对象和 Endpoints 对象的添加和移除。对每个 Service,它会配置 iptables 规则,从而捕获到达该 Service 的 clusterIP 和端口的请求,进而将请求重定向到 Service 的一组后端中的某个 Pod 上面。
 
② 对于每个 Endpoints 对象,它也会配置 iptables 规则,这个规则会选择一个后端组合。默认的策略是,kube-proxy 在 iptables 模式下随机选择一个后端。
 
③ 使用 iptables 处理流量具有较低的系统开销,因为流量由 Linux netfilter 处理,而无需在用户空间和内核空间之间切换。
 
(2)IPVS 代理模式的 Service:
 
① 在 IPVS (IP Virtual Server)模式下,kube-proxy 监视 K8s 服务和端点,并调用 netlink 接口创建相应的 IPVS 规则,并定期将 IPVS 规则与 K8s 服务和端点同步。
 
② 该控制循环可确保 IPVS 状态与所需状态匹配。访问服务时,IPVS 将流量定向到其中之一的后端 Pod。
 
③ IPVS 代理模式基于类似于 iptables 模式的 netfilter 挂钩函数,但是使用哈希表作为基础数据结构,并且在内核空间中工作,这意味着,与 iptables 模式下的 kube-proxy 相比,IPVS 模式下的 kube-proxy 重定向通信的延迟要短,并且在同步代理规则时具有更好的性能。与其他代理模式相比,IPVS 模式还支持更高的网络流量吞吐量。

3. 举例说明 ClusterIP 类型 Service 的用法。

ClusterIP 类型服务发现通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。这也是默认的 ServiceType
 
- 比如,创建服务,对外提供 8000 端口,并把流量引流到具有 app:nginx 的后端 80 端口上。这个场景下,在主机 shell 下是不能直接使用 Pod 的 IP 访问 nginx,需要在 Pod IP(ClusterIP) 后添加 8000 端口

4. 举例说明 NodePort 类型 Service 的用法。

- NodePort 类型服务发现是通过每个节点上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到自动创建的 ClusterIP 服务,通过请求<节点 IP>:<节点端口>,就可以从集群的外部访问一个 NodePort 服务。
 
- 比如,NodePort 会在节点的特定端口上开通服务,指定的端口为 31788:这个场景下,在 主机的  IP 后添加 31788 端口就可以访问到 Pod。

5. 举例说明 Headless 类型 Service 的用法。

在 Headless 类型的 Service 中,Pod 创建时不会直接返回 Pod 的 Service IP,也就是 不提供 Pod ClusterIP,而是直接返回众多 Pod 的 IP。这种场景下,需要进入 Pod 内部用集群内的 DNS 进行访问测试。

6. 详细说明 Ingress 的实现原理和它所实现的功能。

- Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。
 
- Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由,流量路由由 Ingress 资源上定义的规则控制。 为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。
 
- Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值