• 【K8S】集群组件有什么?每个作用是什么?各组件之间关系


    K8S集群包括master节点和多个node节点。

    下面从master和node两个方面来说集群的组件:

    目录

    master

    node

    整体架构图:


    master

    master负责调度管理整个集群,包含以下组件:

    api server

    是整个集群的网关接口,由kube-apiserver守护程序运行为服务,通过HTTP/HTTPS将 RESTFUL API公开给用户,是发往集群的所有REST命令的接入点,用于接收,校验,响应所有REST请求,并将结果存储在etcd中。

    etcd

    k8s集群的所有状态信息都存储在etcd内,etcd是基于raft协议开发的分布式key-value存储,etcd还为存储的数据提供了watch(监听)机制,用于监视和推送变更,api server是k8s集群内唯一可以和etcd通信的组件

    controller manager

    k8s提供了数十种控制器,包括 node controller,namespace controller,service controller,endpoints controller,replication controller,job controller,daemon set controller 等 。控制器的作用是负责实现用户通过api server提交的状态声明,然后通过一些列操作驱动api server对象的当前状态逼近,或等于期望状态。而每个控制器都是一个单独的进程,因此为了降低复杂性,k8s将这些控制器统一编排到一个二进制程序文件,kube-controller-manager 并以单个进程运行

    scheduler

    为新建立的pod进行节点选择,即就是分配合适的机器,负责计算的资源调度。具体来说:为api server接收到的每一个pod创建请求,并在集群上为其匹配到一个最佳工作节点,kube-scheduler是默认的调度器程序,它在匹配工作节点时的考量因素包括硬件,软件,策略约束、亲和力,规范等特征。

    node

    一个k8s集群通常有多个node节点,来提供足够的承载力来运行容器化应用和其他的工作负载。每个node会定期向master报告自身的状态变化并接受master管理。包含以下组件:

    kubelet

    处理master节点下发到本节点的任务,管理pod,及pod中的容器,每个kubelet进程都会在api server上注册自身的信息,定期上master上报节点资源使用情况,并通过caAdvisor监视器监控容器,节点资源,这里的caAdvisor 已被默认集成到kubelet组件内,用来监控工作节点资源。

    容器运行时环境docker

    pod是一组容器集合,并不负责真正运行容器,真正运行容器的是底层的容器运行时。kubelet通过CRI(容器运行时接口)来支持多种类型的容器运行时环境,包括docker,containerd,CRI-O,runC等。

    kube-proxy

    监听 api server中service 和endpoint的变化情况,创建路由规则来提供服务ip和负载均衡功能,简单来说就是kube-proxy相当于是service的透明代理兼负载均衡器,核心功能是将某个Service的访问请求转发至后端的多个pod实例。

    add-ons

    插件分为必须插件和可选插件。

    必须有的插件:网络插件,常用的有flannel,calico,canal,weave net等;kubeDNS

    可选:ingress controller,coreDNS,集群日志系统, 容器资源监控系统;

    需要注意的是:区别于master节点上的控制器管理器内的控制器,ingress controller不运行为 kube-controller-manager的一部分,仅是k8s集群的一个附件,需要在集群上单独部署。

    整体架构图:

    可以得到K8S架构图如下图,重点配合以上文字理解各个组件的作用以及组件之间的关系

     

     

  • 相关阅读:
    第02章 MySQL的数据目录【1.MySQL架构篇】【MySQL高级】
    如何正确的写出第一个java程序:hello java
    LSTMviz配置
    第八篇、线程优先级和守护线程
    ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
    dial tcp 192.168.0.190:443: connect: connection refused
    CPVT:美团提出动态位置编码,让ViT的输入更灵活 | ICLR 2023
    五、函数的介绍
    springboot+vue开发的智慧学校源码(人脸识别+电子班牌+小程序)
    测试人必备的Linux常用命令大全...【全网最全面整理】
  • 原文地址:https://blog.csdn.net/qq_39965059/article/details/126136267