老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

k8s有哪些核心组件?Linux运维培训

老男孩IT教育

行业新闻

2021年8月27日 17:48

Linux作为一个安全性高、易用的操作系统,被广大开发者所使用,其代码也是开源的,可用性极高,在后期学习中,涉及到一些逻辑性较高、复杂的项目中时,我们会接触到其他技术,如Redis,docker,k8s,本篇文章介绍下k8s中的核心组件都有哪些,请看下文:

       Linux作为一个安全性高、易用的操作系统,被广大开发者所使用,其代码也是开源的,可用性极高,在后期学习中,涉及到一些逻辑性较高、复杂的项目中时,我们会接触到其他技术,如Redis,docker,k8s,本篇文章介绍下k8s中的核心组件都有哪些,请看下文:

Linux操作系统

       HPA:Deployment支持二级控制器HPA(HorizontalPodAutoscaler,水平pod自动伸缩控制器),当用户访问流量增加时,节点上的pod不足以承载这么多访问量了,此时我们应该增加pod资源,HPA控制器就可以自动监控pod来确定需要扩展多少个pod。

       service:pod是由声明周期的,一个pod有可能随时被另外一个pod给替换掉,加入它们是同一种服务,客户端是无法通过固定的手段来访问这些pod得到,因为pod本身是不固定的,无论是主机名还是ip地址随时都可能在变换。

       为了尽可能地降低客户端与pod之间协调的复杂度,k8s为每一组提供同类服务的pod和其客户端之间添加了一个中间层,这个中间层是固定的,中间层就叫service。

       service只要不被删除,其地址与名称都是固定的,当客户端需要在其配置文件中写上访问某个服务时,它不再需要自动发现,只需要在配置文件中写明service的名称即可,而这个service是个调度器,其不但能提供稳定的访问入口,还能做方向代理和均衡负载。

       当service接收到客户端的请求后,会将其代理到后端pod之上,一旦pod出现故障会立即新建立一个pod,这个新建的pod会立即被service关联上,作为service后端可用的pod之一。

       客户端程序访问服务都是通过ip:端口或主机名:端口的方式来实现的。而service关联后端的pod不是靠它的ip和主机,而是靠pod的标签选择器。只要创建pod的label是统一的,无论ip和主机如何改变,其都能被service所识别。

       如此一来,只要pod属于标签选择器,只要其在service的管理范围之内,则其就会被关联到service中,当这个动态的pod关联到service中后,再进行动态的探测此pod的ip地址、端口,将其作为自己后端可调度的服务器主机对象,因此,客户端得到请求发送到service,然后由service代理到后端真是的pod中的容器进行响应。

       service不是一个程序,也不是一个组件,它只是一个iptables的dnat规则,service作为k8s的对象,有其自己的名称,而service的名称相当于服务名,而这个名称可以被解析。

       AddOns附件:安装完k8s后第一件事就需要在k8s集群上部署一个dns pod,以确保个service的名称能够被解析。可以动态改变,包括动态创建、删除、修改。

       比如把service名称改了,dns pod会自动触发,将dns解析记录中的名称也改掉,假如我们手动吧service的ip地址改了,同样会自动触发,将dns服务中的解析记录给改掉。如此一来,客户端去访问pod资源的时候可以直接访问service的名称,然后由集群中专用的dns服务来负责解析。

       这种pod是k8s自身服务就需要用到的pod,所以我们把它称为基础性的系统架构级的pod对象,而且它们也被称为集群附件。

       关于“k8s有哪些核心组件”介绍到这里就结束了,老男孩Linux课程项目多吗?当然,2021年我校课程全新升级,首创师傅带徒弟式教学,课程包括70+实战项目,课程体系领先同行业机构至少1年。

       推荐阅读:

       学完Linux后可以从事哪些领域?老男孩Linux培训

       Linux入门必备知识总结!老男孩Linux课程怎么样

       网络中有哪些常见的基本概念?老男孩Linux培训

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。