文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

kubernetes中Service是什么

2023-06-04 12:53

关注

这篇文章主要为大家展示了“kubernetes中Service是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes中Service是什么”这篇文章吧。

一:Service概念
kubernetes中Service是什么

Kubernetes里的每个Service其实就是微服务架构中的一个微服务。 它产生的背景在于:一是Pod的IP地址不是固定的,需要一个代理来确保需要使用Pod的应用不需要知道pod的真实IP地址;另一个是RC创建多个Pod副本时,需要一个代理来为这些pod做负载均衡

Service 主要由一个IP地址和一个label selector组成。

Service定义了一个服务的访问入口地址,前端的应用通过这个入口地址访问其背后的一组由Pod副本组成的集群实例。Service与其后端Pod副本集群直接则是通过Label Selector来实现无缝对接的。而RC的作用实际上是保证Service的服务能力和服务质量始终处于预期的标准。

二:Service工作原理

Kubernetes集群的每个节点上都运行着一个kube-proxy,它是负责整个Service实现的主要组件。

对应每个Service(无论其Pod 是否在该节点上),kube-proxy都会在宿主机上监听一个端口与Service对应起来。它会在宿主机上建立iptables规则。 Service请求经过iptables重定向到它对应的随机端口,再经过kube-proxy的代理到某个后端pod.  kube-proxy里会维护端口和Service的映射关系,以及Service代理的Pod清单。

kube-proxy还会实时监测Master节点上etcd中service和Endpoints对象的增加和删除信息,从而保证后端被代理pod的IP和端口变化可以及时更新到它维护的路由信息中。

三:Service发现机制

一旦一个Service被创建,该Service的信息都可以被注入到Pod中工他们使用。

环境变量方式: kubelet创建pod时会自动添加所有可用的service环境变量到该pod中,如果有需要,这些环境变量就被注入pod内的容器里。

DNS方式:DNS服务器使用kubernetes的WatchAPI,不间断地监测新Service的创建并为每个Service新建一个DNS记录。如果DNS在整个集群范围内都可用,那么所有的Pod都能够自动解析Service的域名。

四:Service外部访问

Node IP:Node节点的IP地址。每个节点的物理网卡的IP地址,这是一个真实存在的物理网络。Kubernetes集群之外的节点访问集群之内的某个节点或者TCP/IP服务的时候,必须通过Node IP进行通信。

Pod IP:每个Pod的IP地址,它是Docker Engine 根据docker0网桥的IP地址段进行分配的。通常是一个虚拟的二层网络。kubernetes要求位于不同Node上的Pod能够彼此直接通信,所有Kubernetes里一个pod里的容器访问另外一个Pod里的容器,就是通过pod ip所在的虚拟二层网络进行通信的,而真实的tcp/ip流量则是通过node ip所在的物理卡流出的。

Cluseter IP: 一个虚拟的IP 仅仅作用域Service这个对象,由kubernetes管理和分配IP地址。 它是无法ping通的。只能结合Service Port组成一个具体的通信端口,她属于kubernetes集群这样一个封闭的空间。集群之外的节点如果要访问这个通信端口,则需要做一些额外的工作。

采用NodePort解决外部对集群内服务的访问时最直接,最有效,最常用的方法。

NodePort的实现方式是在k8s集群里的每个Node上为需要外部访问的service开启一个对应的TCP监听端口,外部系统只要用任意一个Node的IP地址+具体的Node Port端口号即可访问此服务。

但NodePort还没有完全解决外部访问Service的所有问题,比如负载均衡问题,假如我们集群中有10个Node,则此时最好有一个负载均衡器,外部只需要访问此负载均衡器的IP地址,由负载均衡器转发流量到后面某个Node的NodePort上。

负载均衡器可以采用硬件或软件(HAProxy,Nginx)的方式来实现。但这样又带来了另外一个问题,对于每个Service都需要手动配置一个对应的负载转发实例。

以上是“kubernetes中Service是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯