K8S基本组件梳理
Master组件
apiserver:对资源对象进行curd操作,例如pod和server;将所有的状态储存到etcd中。
schedule:监控未调度的pod,根据pod的资源需求、资源可用性和其他约束,选择最合适的节点来运行pod。
controller-manage:监控集群的状态,实现集群的自愈和自动化管理。
Replication controller:确保指定个数的pod副本在集群上运行。
Node controller:监控集群中节点(Node)的状态,确保节点的健康状况。
Endpoints controller:为services对象维护和更新其关联的Pod列表。
Namespace controller:管理K8S的中的命名空间,包括监控和清理被删除的。
Service controller:管理和维护LoadBalancer类型服务的外部负载均衡器。
LoadBalancer是用于在多台服务器(或 Pod)之间分发网络流量的组件:
- 流量分发:将来自外部的请求均匀地分配到多个后端实例(如 Pod 或服务器),以避免某一实例负载过重,提高应用的可 用性和响应速度。
- 高可用性:当某些后端实例不可用时,LoadBalancer 可以自动将流量重定向到健康的实例,确保服务的连续性。
- 扩展性:通过负载均衡,系统可以动态添加或移除后端实例,以应对流量的变化,从而实现弹性伸缩。
ServiceAccount controller:为每个新创建的namespace自动创建默认的ServiceAccount对象,确保token被分配到这些 ServerAccount中。
Node组件
kube-proxy:维护节点上的网络规则,服务负载均衡,根据据服务的虚拟 IP 地址和端口,将流量分发到后端的 Pod 上,确保流量能够 均匀地分布在多个副本上。并根据这些变化动态更新自己的网络规则,确保流量始能够正确转发到当前有效的 Pod 。
kuberlet:是一个代理,他会根据主节点的指令,确保制定容器在节点的正确运行;他会监控容器的健康情况,向apiserver发送节点 的状态,apiserver接收到这些节点的状态信息之后,会将它们更新到etcd中;kubelet也通过apiserver监听Pod信息,从而 对Node机器上的Pod进行管理:如创建,更新,删除Pod。
容器运行时:每个工作节点需要一个容器运行时来运行和管理容器。
calico:提供容器网络和网络策略的解决方案,能实现容器和容器间的通信、流量控制和安全策略来增强器群的网络能力。
(通俗的讲就是给Pod和Service分配ip的)
其他组件
Etcd:是一个高可用的键值存储数据库,存储K8S的资源状态信息和网络信息,Etcd中的数据变更通过apiserver来进行。(基数选主,至少三个做高可用)
Coredns:是一个dns服务器,能够K8S Services提供dns记录(可以对Service名字进行解析,解析成Service的IP)

K8S基本组件梳理的更多相关文章
- Tomcat组件梳理—Service组件
Tomcat组件梳理-Service组件 1.组件定义 Tomcat中只有一个Server,一个Server可以用多个Service,一个Service可以有多个Connector和一个Contain ...
- Tomcat组件梳理—Digester的使用
Tomcat组件梳理-Digester的使用 再吐槽一下,本来以为可以不用再开一个篇章来梳理Digester了,但是发现在研究Service的创建时,还是对Digester的很多接口或者机制不熟悉,简 ...
- Tomcat组件梳理--Server
Tomcat组件梳理--Server 1.Server组件的定义和功能概述 定义: Server组件用于描述一个启动的Tomcat实例,一个Tocmat被启动,在操作系统中占用一个进程号,提供web服 ...
- Tomcat组件梳理--Catalina
Tomcat组件梳理--Catalina 1.定义和功能 Catalina是Tomcat的核心组件,是Servlet容器,Catalina包含了所有的容器组件,其他模块均为Catalina提供支撑.通 ...
- 1.Tomcat组件梳理—Bootstrap启动器
Tomcat组件梳理-Bootstrap启动器 一开始是直接从Server开始做梳理的,但是发现有很多东西是从Catalina传输过来的,Catalina又是从Bootstrap启动的,所以还是回过头 ...
- k8s的组件
1.Master组件 1.API Server K8S对外的唯一接口,提供HTTP/HTTPS RESTful API,即kubernetes API.所有的请求都需要经过这个接口进行通信.主要负责接 ...
- k8s各组件启动时, -v参数指定的日志级别
k8s 相关组件启动时 -v参数指定的日志级别 --v=0 Generally useful for this to ALWAYS be visible to an operator. --v=1 A ...
- 微服务架构组件梳理之Netflix停更之后该何去何从
自2018年底,Netflix陆续宣布Eureka.Hystrix等框架进入维护状态,不再进行新功能的开发. 恰逢最近我打算对公司的办公项目进行微服务架构升级,所以恶补了一番微服务相关知识,在这里进行 ...
- K8S命令的梳理
kubectl是一个基础的K8S集群管理命令,可以实现对K8S资源的查询,创建,删除,更新,回退等各种各样的操作.由于其复杂的功能体系,命令灵活度又高,因此需要进行常见的一些命令和使用场景的梳理. 1 ...
- 十二张图:从0开始理解对称/非对称加密、CA认证、以及K8S各组件颁发证书原由
目录 一.对称加密 二.对称加密-不安全 三.非对称加密 四.非对称加密-不安全 五.对称加密和非对称加密结合 六.对称加密和非对称加密结合-不安全 七.Https的做法-引入CA机构 八.乘胜追击理 ...
随机推荐
- LM Studio + open-webui 快速本地部署大语言模型
目录 一.前言 二.环境准备 三.安装设置 四.下载模型并运行 五.配置 open-webui 写在结尾 一.前言 自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发, ...
- Known框架实战演练——进销存基础数据
本文介绍如何实现进销存管理系统的基础数据模块,基础数据模块包括商品信息.供应商管理和客户管理3个菜单页面.供应商和客户字段相同,因此可共用一个页面组件类. 项目代码:JxcLite 开源地址: htt ...
- 对比python学julia(第三章:游戏编程)--(第四节)捕鱼达人(5)
4.3. 编程实现 (续上) 3. 实现射击捕鱼 在第 3 个阶段,将按照"编程思路"中介绍的射击捕鱼的算法进行编程,实现让玩家操控大炮射击捕鱼.在"bydr&qu ...
- 【Java】Input,Output,Stream I/O流 05 RandomAccessFile 随机访问文件类
RandomAccessFile 随机访问文件类 直接继承java.lang.Object 实现DataInput & DataOutput 接口 即是输入流,也是输出流 public cla ...
- 中国特供版4090D已经开始发售
由于美国政府的限制,NVIDIA公司等美国公司不允许向中国出口4090显卡,但是为了绕过美国政府的限制NVIDIA公司推出了中国特供版的4090D显卡. 4090d显卡和4090显卡区别大吗?可以说其 ...
- Python示例——负数的位运算
平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文. 给出一些位运算的例子: 其中,正数的位运算是最为常 ...
- git的快速入门(含常用指令)
目录 概念 什么是git git与GitHub有什么区别 提交.仓库.分支 git的使用 从GitHub上下载别人的代码 直接将代码下载到本地 克隆仓库获取代码 将自己的代码上传到GitHub 本文拟 ...
- 017.Kubernetes二进制集群扩容worker
一 前置准备 1.1 互信配置 为了更方便远程分发文件和执行命令,本实验配置master节点到其它节点的 ssh 信任关系. 1 [root@master01 ~]# ssh-copy-id -i ~ ...
- SMU Spring 2023 Contest Round 4(第 21 届上海大学程序设计联赛 春季赛)
A. Antiamuny wants to learn binary search 签到题. #include <map> #include <set> #include &l ...
- Git回退服务器版本及receive.denyDeleteCurrent配置
https://blog.csdn.net/sunalongl/article/details/52013435 如果某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了, ...