开发手册 欢迎您!
软件开发者资料库

Kubernetes - 建筑

Kubernetes Architecture - 从简单和简单的步骤学习Kubernetes,从基本到高级概念,包括概述,架构,设置,图像,作业,标签和选择器,命名空间,节点,服务,Pod,复制控制器,副本集,部署,卷,秘密,网络政策,API,Kubectl,Kubectl命令,创建应用程序,应用程序部署,自动扩展,仪表板设置,监控。

在本章中,我们将讨论Kubernetes的基本架构.

Kubernetes  -  Cluster Architecture

如下图所示,Kubernetes遵循客户端 - 服务器架构.其中,我们在一台机器上安装了master,在不同的Linux机器上安装了该节点.

Cluster Architecture

主和节点的关键组件在以下部分中定义.

Kubernetes  - 主机组件

以下是Kubernetes Master Machine的组件.

etcd

它存储可供集群中每个节点使用的配置信息.它是一个高可用性键值存储,可以分布在多个节点之间.它只能由Kubernetes API服务器访问,因为它可能包含一些敏感信息.它是一个可供所有人访问的分布式键值存储.

API服务器

Kubernetes是一个API服务器,它使用集群提供所有操作API. API服务器实现了一个接口,这意味着不同的工具和库可以很容易地与它通信. Kubeconfig 是一个包以及可用于通信的服务器端工具.它暴露了Kubernetes API.

控制器管理器

该组件负责管理群集状态和执行任务的大多数收集器.通常,它可以被视为在非终止循环中运行的守护进程,负责收集信息并将信息发送到API服务器.它用于获取群集的共享状态,然后进行更改以使服务器的当前状态达到所需状态.关键控制器是复制控制器,端点控制器,命名空间控制器和服务帐户控制器.控制器管理器运行不同类型的控制器来处理节点,端点等.

调度程序

这是Kubernetes master的关键组件之一.它是master中负责分发工作负载的服务.它负责跟踪群集节点上的工作负载的利用率,然后放置资源可用的工作负载并接受工作负载.换句话说,这是负责将pod分配给可用节点的机制.调度程序负责工作负载利用率并将pod分配给新节点.

Kubernetes  - 节点组件

以下是节点服务器的关键组件,它们是与Kubernetes master沟通的必要条件.

Docker

每个节点的第一个要求是Docker,它有助于在相对隔离的情况下运行封装的应用程序容器但是轻量级的操作环境.

Kubelet服务

这是每个节点中的一项小型服务,负责向控制平面服务中继信息.它与 etcd 存储交互以读取配置详细信息和wright值.这与主组件通信以接收命令和工作.然后 kubelet 进程负责维护工作状态和节点服务器.它管理网络规则,端口转发等.

Kubernetes代理服务

这是一个代理服务,它在每个节点上运行并有助于提供服务可供外部主机使用.它有助于将请求转发到正确的容器,并且能够执行原始负载平衡.它确保网络环境是可预测和可访问的,同时它也是孤立的.它管理节点,卷,秘密上的pod,创建新容器的健康检查等.

Kubernetes  - 主节点和节点结构

以下插图显示Kubernetes Master和Node的结构.

主和节点结构