【k8s系列,持续更新中】1.2 初识k8s_组件 (把他们也算上~~)

【写在前面】


接触k8s有一段时间了,但是并没有很系统的撸一遍,总是哪个组件或者哪个出错了就去百度,知识并没有沉淀下来,所以打算写一下系列文章,本着好理解,全是大白话来搞定。如果哪里写的不好或者出错了,欢迎大佬指正。
 
 

1. 组件介绍


简单来说就是分为 master 和 node,集群中必须至少有一个node节点,通常node节点上会运行容器化的应用程序。
实际上来说就是node会托管pod,然后pod里面会运行容器化的应用程序。
master节点就是用来管理 node 和 pod 的。生产环境中可能需要多个master节点来保证集群的高可用。
master 和 node上运行的组件也是不相同的。

除了master 和 node 还有一些其他的插件也可以研究下。
架构如下:
在这里插入图片描述

 

1.1 master


也叫做控制平面组件,主要就是为集群做出决策,比如资源调度、检测和相应集群的事件。分为以下几个组件:

  • apiServer:主要公开k8s的api接口,负责处理接收请求的工作,也可以理解为集群的统一入口,也是负责校验、鉴权、准入控制等。apiServer设计的时候就考虑到了水平扩展,所以可以通过部署多个实例来进行扩展
  • etcd:一致且高可用的kv存储,当作k8s集群的后台数据库。
  • scheduler:主要就是负责pod调度的,比如新创建的但是为指定运行的 node 的pod,然后选择匹配的节点来运行pod。
  • controller-manager:负责维护集群状态,也负责集群的健康检查、自我修复、弹性伸缩等。其实k8s集群中分为多种控制器,比如node控制器,任务控制器,有状态无状态控制器、
     
     

1.2 node


节点组件会在每个节点上运行,其实就是提供了运行pod的运行环境。具体如下:

  • kubelet:在每个节点上运行,保证containers都运行在pod中。也是负责定期向apiServer汇报pod以及node的健康状态。
  • kube-proxy:其实简单理解就是实现集群内部的服务发现以及负载均衡,也算是一个网络代理吧;其实service是抽象出来的,具体实现还是由kube-proxy来实现的;根据service定义的内容,然后kube-proxy定义访问规则。
  • 容器运行时:可以使用docker(1.19版本之前),containerd,或者只要支持k8s CRI接口的都行。
     
     

1.3 插件


这部分比如需要的web界面啊,资源监控等,这部分就不详细说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值