当前位置: 首页 > news >正文

【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 终结和基于名称的虚拟托管。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TPM在解决哪些类型的问题时最有效?
  • log4j 清除MDC上下文 MDC分类日志
  • Python Tkinter小程序
  • 10,sql约束(2)
  • RedisStack十部曲之二:Redis的核心概念
  • python读取excel数据详细解说
  • 基于RK3568平台移植ffmpeg3.4.5及ffmpeg验证
  • 2408wtl,解析快捷方式
  • 解决UOS开发截图时电脑滴滴声
  • 求解组合优化问题的具有递归特征的无监督图神经网络
  • fastadmin后台报expandOnHover错误
  • Edible Fish 可食用鱼
  • 核心交换机的六个基础知识
  • ISO 26262中的失效率计算:SN 29500-11 Expected values for contactors
  • 1、正则表达式
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 2017-09-12 前端日报
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • ECMAScript入门(七)--Module语法
  • JavaWeb(学习笔记二)
  • Mac转Windows的拯救指南
  • 大型网站性能监测、分析与优化常见问题QA
  • 将 Measurements 和 Units 应用到物理学
  • 跨域
  • 深入浏览器事件循环的本质
  • 微信小程序设置上一页数据
  • 项目管理碎碎念系列之一:干系人管理
  • 一个完整Java Web项目背后的密码
  • 移动端 h5开发相关内容总结(三)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 带你开发类似Pokemon Go的AR游戏
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #android不同版本废弃api,新api。
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (14)Hive调优——合并小文件
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (二)springcloud实战之config配置中心
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一)基于IDEA的JAVA基础12
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (一一四)第九章编程练习
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)c++ std::pair 与 std::make
  • .apk文件,IIS不支持下载解决
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat文件调用java类的main方法
  • .NET : 在VS2008中计算代码度量值
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET/C# 使窗口永不获得焦点
  • .net6 webapi log4net完整配置使用流程
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .NET性能优化(文摘)
  • .NET中两种OCR方式对比
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法