• 02Kubernetes架构和组件


    Kubernetes架构和组件

    Kubernetes架构

    K8S架构

    Kubernetes组件

    Kubernetes Master

    集群控制节点,负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都是发给它,它来负责具体的执行过程,我们后⾯面所有执行的命令基本都是在Master节点上运行的;

    包含如下组件:

    Kubernetes API Server

    作为Kubernetes系统的入口,其封装了了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用。维护的REST对象持久化到Etcd中存储。

    Kubernetes Scheduler

    为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器。

    Kubernetes Controller

    负责执行各种控制器,目前已经提供了很多控制器来保证Kubernetes的正常运行。

    Replication Controller

    管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定
    义的副本数量与实际运行Pod数量一致。

    Deployment Controller

    管理维护Deployment,关联Deployment和Replication Controller,保证运行指定数量的Pod。当Deployment更新时,控制实现Replication Controller和Pod的更新。

    Node Controller

    管理维护Node,定期检查Node的健康状态,标识出(失效|未失效)的Node节点。

    Namespace Controller

    管理维护Namespace,定期清理无效的Namespace,包括Namesapce下的API对象,比如Pod、Service等。

    Service Controller

    管理维护Service,提供负载以及服务代理。

    EndPoints Controller

    管理维护Endpoints,关联Service和Pod,创建Endpoints为Service的后端,当Pod发生变化时,实时更新Endpoints。

    Service Account Controller

    管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret。

    Persistent Volume Controller

    管理维护Persistent Volume和Persistent Volume Claim,为新的Persistent Volume Claim分配 Persistent Volume进行绑定,为释放的Persistent Volume执行清理回收。

    Daemon Set Controller

    管理维护Daemon Set,负责创建Daemon Pod,保证指定的Node上正常的运行Daemon Pod。

    Job Controller

    管理维护Job,为Jod创建一次性任务Pod,保证完成Job指定完成的任务数目

    Pod Autoscaler Controller

    实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作。

    Kubernetes Node

    除了Master, Kubernetes集群中的其他机器被称为Node节点, Node节点才是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机,其上的工作负载会被Master自动转移到其他节点上去;

    包含如下组件:

    Kubelet

    负责管控容器, Kubelet会从Kubernetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。

    Kubernetes Proxy

    负责为Pod创建代理服务, Kubernetes Proxy会从Kubernetes API Server获取所有的Service信息,并根据Service的信息创建代理服务,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟转发网络。

    Docker Engine(docker)

    Docker引擎,负责本机的容器创建和管理工作。

    数据库

    etcd数据库,可以部署到master上,也可以独立部署。

    分布式键值存储系统。用于保存集群状态数据,比如Pod、 Service等对象信息。

  • 相关阅读:
    【渗透攻防】深入了解Windows
    浅析B/S架构数据库连接方式
    剖析泄露你银行卡密码的钓鱼网站:真假“10086”
    红黑树的删除和加入节点
    Unity里包裹Debug,且不影响Debug的重定向
    Java向上转型和向下转型(附具体样例)
    Javascript 方法apply和call的差别
    普通androidproject转换为C/C++project之后,再还原成androidproject的解决方式
    初识双网卡
    js面向对象编程: js类定义函数时prototype和this差别?
  • 原文地址:https://www.cnblogs.com/ElegantSmile/p/12808692.html
Copyright © 2020-2023  润新知