k8s自身原理service及实现图文示例解析

 更新时间:2023年08月16日 09:21:52   作者:阿兵云原生  
这篇文章主要为大家介绍了k8s自身原理service图文示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

终于来到 k8s 自身的原理之 关于 Service 的一部分了

前面我们用 2 个简图展示了 pod 之间和 pod 与 node 之间是如何通信息的,且通信的数据包是不会经过 NAT 网络地址转换

那么 Service 又是如何实现呢?

Service 我们知道是用来对外暴露服务的 ip 和 端口的,好让外部的客户端可以访问到我们内部 pod 提供的服务

另外 Service 管理的 pod ,实际的 ip 和 端口 列表,都是存放在对应的 endpoints 里面的

目前为止,我们也仅仅是停留在会使用 Service 了,那么 Service 自身的原理又是如何呢?我们一起来瞅瞅看

对于 Service 的服务 ip 地址,也是一个虚拟的,同时也是对外暴露了 1 个或者多个端口,既然是虚拟的,咱们肯定是 ping 不通的,例如我的 minikube 环境

当然,我们看了之前的分享之后,发现 k8s 中对于资源的变动,基本上都是使用的监听机制,那么对于 Service 的行为 和 endpoints 的行为,是不是同样是被不同的关键组件所监听呢?

我们可以用一个简图来了解一下:

图中,我们可以看到

  • 一个 Service 管控的是 2 个 pod,具体的 ip 和 端口 列表 都是存放在 endpoints 中
  • kube-proxy 会监控 ApiServer 中 Endpoints 对象的变化,若 endpoints 这中 list 有变化,kube-proxy 监听到之后,就会通知 iptables 去配置新的规则
  • 例如环境中的 一个 pod 3 发请求给到咱们这个 Service,发出来的 目的地址是 Service 的地址和端口
  • 但是通过 iptables 设定的规则进行转换,目的地址和端口就变成了 Service 管控的 pod 自己的 ip 和端口了

就看这个流程,好像也不复杂嘛,那么实际生产环境中也会是这样的吗?我们可以思考一下,更多关于k8s service实现原理的资料请关注脚本之家其它相关文章!

相关文章

  • Kubernetes中根据Pod IP查找Pod及关联服务的实现方式

    Kubernetes中根据Pod IP查找Pod及关联服务的实现方式

    文章介绍Kubernetes中通过Endpoints、Service选择器、网络策略及节点IPVS/iptables等方法快速定位Pod与关联Service的技巧,推荐优先使用Endpoints并结合标签匹配,适用于调试和运维场景
    2025-10-10
  • K8S 实用工具之合并多个kubeconfig实现详解

    K8S 实用工具之合并多个kubeconfig实现详解

    这篇文章主要为大家介绍了K8S 实用工具之合并多个kubeconfig实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Kubernetes安全加固的一些实用建议

    Kubernetes安全加固的一些实用建议

    Kubernetes是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的,下面这篇文章主要给大家介绍了关于Kubernetes安全加固的一些实用建议,需要的朋友可以参考下
    2022-02-02
  • 使用kubectl获取pod日志小技巧分享

    使用kubectl获取pod日志小技巧分享

    文章介绍了如何使用kubectl命令查看K8S中Pod的日志,包括获取单个Pod日志、同一deployment下多个副本Pod的日志、最近xx行日志、最近一段时间的日志、上一个崩溃但还存在的Pod的日志、指定或所有容器的日志以及持续获取Pod日志的方法
    2026-02-02
  • k8s编排之StatefulSet知识点详解二

    k8s编排之StatefulSet知识点详解二

    这篇文章主要为大家介绍了k8s编排之StatefulSet知识点的部分详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • K8s之StatefulSet控制器使用实例

    K8s之StatefulSet控制器使用实例

    在Kubernetes实战中,StatefulSet控制器用于部署和管理有状态应用,这些应用需要稳定的持久化存储、有序的部署和扩展、以及唯一的网络标识,这篇文章主要介绍了K8s之StatefulSet控制器使用的相关资料,需要的朋友可以参考下
    2026-04-04
  • Kubernetes(k8s 1.23))安装与卸载详细教程

    Kubernetes(k8s 1.23))安装与卸载详细教程

    这篇文章主要介绍了Kubernetes(k8s 1.23))安装与卸载,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • K8s-helm简介及基本概念详解

    K8s-helm简介及基本概念详解

    ​Helm 使用的包格式称为 chart,它是一个描述 Kubernetes 相关资源对象的文件集合,这篇文章主要介绍了K8s-helm简介及基本概念,需要的朋友可以参考下
    2022-07-07
  • k8s中secret的用法详解

    k8s中secret的用法详解

    secret用于加密pod访问数据库的用户凭证,这篇文章主要介绍了k8s中secret的用法详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • K8S中应用无法获取用户真实ip问题排查过程

    K8S中应用无法获取用户真实ip问题排查过程

    这篇文章主要介绍了K8S中应用无法获取用户真实ip问题排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07

最新评论