Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes  服务。

架构原理图:

Kubernetes 架构原理及简介

 

架构原理解析:

1.【Master 节点】

Master 是Kubernetes Cluster 的大脑,运行着的 Daemon 服务包括 kube-apiserver、 kube-scheduler 、 kube-controller-manager、etcd 和 Pod 网络(例如:flannel);

1.1【API Server (kube-apiserver)】

API Server 提供 HTTP/HTTPS RESTful API, 即 Kubernetes AРI.。API Server  是 Kubernetes Cluster 的前端接口,各种客户端工具(CLI或UI)以及Kubermetes 其他组件可以通过它管理 Cluster 的各种资源。

1.2【Scheduler ( kube -scheduler )】

Scheduler 负责决定将 Pod 放在哪个Node 上运行。 Scheduler 在调度时会充分考虑 Cluster 的拓扑结构,当前各个节点的负载,以及应用对高可用、性能、数据亲和性的需求。

1.3【Controller Manager ( kube- controller- manager )】

Contoller Manager 负责管理 Cluster 各种资源,保证资源处于预期的状态。ContollerManager 由多种 controller 组成,包括replication controller、endpoints controller、namespace controller、serviceaccounts controller 等。

不同的 contoller 管理不同的资源。例如:replication controller 管理Deployment 、StatefulSet、DaemonSet 的生命周期,namespace controller 管理 Namespace 资源。

1.4【etcd】

etcd 负责保存 Kubernetes Cluster 的配置信息和各种资源的状态信息。当数据发生变化时,etcd 会快速地通知Kubernetes 相关组件。

1.5【Pod网络】

Pod要能够相互通信,Kubernetes Cluster必须部署Pod网络,flannel 是其中一个可选方案。

以上是【K8s-Master】上运行的组件,下面我们接着讨论【K8s-Node】。

 

2.【Node 节点】

Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。Node 上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络(例如:flannel)。

2.1【kubelet】

kubelet 是 Node 的 agent,当 Scheduler 确定在某个 Node 上运行 pod 后,会将 Pod 的具体配置信息(imager、volume 等)发送给该节点的 kubelet,然后 kubelet 根据这些信息创建和运行容器,并向 Master 报告运行状态。

2.2【kube-proxy】

service 在逻辑上代表了后端的多个 Pod, 外界通过 service 访问 Pod. service 接收到的请求是如何转发到 Pod 的呢?这就是 kube-proxy 要完成的工作。

每个 Node 都会运行 kube-proxy 服务,它负责将访问 service 的 TCP/UPD 数据流转发到后端的容器。如果有多个副本,kube-proxy 会实现负载均衡。

2.3【Pod网络】

Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络,flannel 是其中一个可选方案。

以上是【K8s-Node】上运行的组件。

 

相关文章:

  • 2021-09-14
  • 2022-12-23
  • 2021-07-06
  • 2021-04-06
  • 2021-09-25
  • 2021-09-22
  • 2021-12-17
  • 2022-01-21
猜你喜欢
  • 2022-12-23
  • 2021-06-14
  • 2021-06-30
  • 2021-09-23
  • 2021-05-29
相关资源
相似解决方案