k8s 学习 各个组件的基本概念

Kubernetes是一个基于分布式存储的集群管理系统,包括etcd、apiserver、controller-manager、scheduler、kubelet、container runtime和kube-proxy等核心组件。etcd保存集群状态,apiserver作为资源操作入口,controller-manager维护集群状态,scheduler负责调度Pod,kubelet管理容器生命周期,container runtime处理容器运行,kube-proxy实现服务发现和负载均衡。此外,还有kube-dns、IngressController、Heapster、Dashboard等推荐Add-ons。Kubernetes架构允许Master组件集中或分布部署,提供高度可扩展性和容错性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要参考https://www.kubernetes.org.cn/docs

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。下面这张图是Kubernetes的架构图。

 

 

Kubernetes主要由以下几个核心组件组成:

  • etcd保存了整个集群的状态;
  • apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  • kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
  • Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
  • kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

除了核心组件,还有一些推荐的Add-ons:

  • kube-dns负责为整个集群提供DNS服务
  • Ingress Controller为服务提供外网入口
  • Heapster提供资源监控
  • Dashboard提供GUI
  • Federation提供跨可用区的集群
  • Fluentd-elasticsearch提供集群日志采集、存储与查询

其它资料

etcd 是一个键值存储仓库,用于配置共享和服务发现   ,也就是分布式数据库

https://blog.youkuaiyun.com/bbwangj/article/details/82584988

REST:   REpresentational State Transfer 直接翻译:表现层状态转移。全称是 Resource Representational State Transfer:通俗来讲就是:资源在网络中以某种表现形式进行状态转移。

RESTful API    也就是遵守特定规则的API
参考 https://www.zhihu.com/question/28557115

pod是k8s的最小单元,容器包含在pod中,一个pod中有一个pause容器和若干个业务容器,而容器就是单独的一个容器,简而言之,pod是一组容器,而容器单指一个容器。

参考 https://blog.51cto.com/11093860/2337707

authentication : 授权认证    authorization :授权书,用户凭证

Master components Colocated,or spread across machines,as dictated by cluster size

根据集群大小,主组件可以在机器上集中或分布     , 意思就是master 组件 可以部署到一个节点上也可以部署到多个节点上

distributed watchable storage : 分布式可监视存储

 

### Kubernetes 中 etcd 组件介绍 etcd 是 Kubernetes 的核心组件之一,作为分布式键值存储系统,在整个集群中扮演着至关重要的角色。它不仅保存了集群配置、状态等元数据信息,还支持高可用性和一致性保障[^1]。 #### 数据结构与索引机制 为了提高查询效率并确保快速访问所需的数据项,etcd 使用 B+树算法实现了一个名为 `kvindex` 的功能模块。该模块专门针对 key 进行索引处理,使得即使面对海量数据也能保持高效的检索能力。此外,底层持久化层采用了 BoltDB 来完成实际的数据落地操作,而后者同样是基于 Go 语言开发的小型嵌入式数据库引擎[^4]。 #### Watch 机制详解 除了基本的 CRUD 操作外,etcd 提供了一套完善的监听机制——即 watch 功能。这允许客户端订阅特定路径下的变更事件,并实时接收到最新的更新通知。每当某个被监视的对象发生变化时,相应的 watcher 就会被激活并向注册者推送最新版本的内容。这种设计极大地简化了应用程序之间的同步逻辑,同时也增强了系统的响应速度和灵活性。 #### TTL (Time To Live) 生命周期管理 对于某些临时性质或有时效性的记录来说,设置合理的生存周期显得尤为重要。为此,etcd 引入了 lease(租约)概念以及配套的时间轮调度器来跟踪各个 entry 的有效期。一旦超过设定时限,则自动触发清理动作移除过期条目,从而维持整体环境整洁有序的状态。 ```go // 创建带TTL的KV对示例代码 ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() leaseResp, err := client.Grant(ctx, 5) // 设置5秒存活时间 if err != nil { log.Fatal(err) } _, err = client.Put(ctx, "key", "value", clientv3.WithLease(leaseResp.ID)) if err != nil { log.Fatal(err) } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值