什么是 k8s

mac2026-04-04  4

一、k8s 核心组件

master 组件:

• etcd 是集群的主数据库,保存了整个集群的状态 • apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; • controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; • scheduler 资源调度,按照预定的调度策略将Pod调度到相应的机器上; • Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI); • 除了核心组件,还有一些推荐的Add-ons: • kube-dns负责为整个集群提供DNS服务 • Ingress Controller为服务提供外网入口 • Heapster提供资源监控 • Dashboard提供GUI • Federation提供跨可用区的集群 • Fluentd-elasticsearch提供集群日志采集、存储与查询

node组件:

• kubelet 负责维护容器的生命周期,负责管理pods和它们上面的容器,images镜像、volumes。同时也负责Volume(CVI)和网络(CNI)的管理; • kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡;

二 k8s 相关概念:

1: pod Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务. 2: 副本复制器(RC) 通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。少于指定数目,RC就会启动运行新的Pod副本;多于指定数目,RC就会杀死多余的Pod副本【k8s早期技术概念】来保证集群高可用! 3: 副本集(Replica Set,RS) RS是新一代RC,提供同样的高可用能力,能支持更多种类的匹配模式。副本集对象一般不单独使用,配合deployment参数使用 4: 部署(Deployment) 部署是一个比RS副本集应用模式更广的API对象,支持动态扩展。可以创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。滚动升级一个服务,实际是创建一个新的RS,然后逐渐将新RS中副本数增加到理想状态,将旧RS中的副本数减小到0的复合操作【逐步升级新得副本,剔除旧的副本】; 总结:RC、RS和Deployment只是保证了支撑服务的微服务Pod的数量 5: 服务(Service) RC、RS和Deployment只是保证了支撑服务的微服务Pod的数量,但是没有解决如何访问这些服务的问题。一个Pod只是一个运行服务的实例,随时可能在一个节点上停止,在另一个节点以一个新的IP启动一个新的Pod,因此不能以确定的IP和端口号提供服务。如果要稳定地提供服务需要服务发现和负载均衡能力。在K8s集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。 在K8s集群中微服务的负载均衡是由Kube-proxy实现的。Kube-proxy是K8s集群内部的负载均衡器。它是一个分布式代理服务器,在K8s的每个节点上都有一个;

最新回复(0)