Kubernetes(K8S) 架构

  • Kubernetes 架构

    在本章中,我们将讨论Kubernetes的基本架构
  • Kubernetes-集群架构

    如下图所示,Kubernetes遵循客户端-服务器架构。其中,我们将master安装在一台计算机上,并将节点安装在单独的Linux计算机上。
    jiagou
    主服务器和节点的关键组件在以下部分中定义。
  • Kubernetes-master 组件

    以下是Kubernetes Master Machine的组件。
    etcd
    它存储集群中每个节点可以使用的配置信息。它是一个高可用性键值存储,可以在多个节点之间分布。只有Kubernetes API服务器可以访问它,因为它可能具有一些敏感信息。这是一个分布式键值存储,所有人都可以访问。
    API server
    Kubernetes是一个API服务器,它使用API​​在集群上提供所有操作。API服务器实现了一个接口,这意味着不同的工具和库可以轻松地与其进行通信。Kubeconfig是与可用于通信的服务器端工具一起的软件包。它公开了Kubernetes API。
    Controller Manager
    该组件负责调节群集状态并执行任务的大多数收集器。通常,可以将其视为在非终止循环中运行的守护程序,该守护程序负责收集信息并将其发送到API服务器。它致力于获取群集的共享状态,然后进行更改以使服务器的当前状态达到所需状态。关键控制器是复制控制器,端点控制器,名称空间控制器和服务帐户控制器。控制器管理器运行不同类型的控制器来处理节点,端点等。
    Scheduler
    这是Kubernetes master的关键组件之一。它是主服务器中负责分配工作负载的服务。它负责跟踪群集节点上工作负载的利用率,然后将工作负载放在可用资源上并接受该工作负载。换句话说,这是负责将Pod分配给可用节点的机制。调度程序负责工作负载利用率,并将Pod分配给新节点。
  • Kubernetes-node(节点) 组件

    以下是与Kubernetes主站通信所必需的Node服务器的关键组件。
    docker
    每个节点的第一个要求是Docker,它有助于在相对隔离但轻量级的操作环境中运行封装的应用程序容器。
    Kubelet服务
    这是每个节点中的一个小服务,负责在控制平面服务之间来回传递信息。它与etcd存储交互,以读取配置详细信息和wright值。这与主组件进行通信以接收命令并工作。然后,kubelet进程承担维护工作状态和节点服务器的责任。它管理网络规则,端口转发等。
    Kubernetes Proxy(代理)服务
    这是在每个节点上运行的代理服务,有助于使服务对外部主机可用。它有助于转发请求以更正容器,并能够执行原始负载平衡。它确保网络环境是可预测的且可访问的,同时也将其隔离。它管理节点,卷,机密上的Pod,创建新容器的运行状况检查等。
  • Kubernetes-Master-Node(节点) 结构

    下图显示了Kubernetes Master和Node的结构。
    jiagou