Kubernetes 的架构了解

Posted 简简单单OnlineZuozuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes 的架构了解相关的知识,希望对你有一定的参考价值。

Kubernetes 的架构了解


1、Master 架构

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

Master 上运行 kube-apiserver、kube-scheduler、kube-controller-manager、etcd 和 Pod 网络

2、Master 架构概念解析

API Server(kube-apiserver): API Server 提供 HTTP/HTTPS RESTful API ,各种客户端工具(CLI 或 UI)以及 Kubernetes 其他组件可以通过它管理 Cluster 的各种资源

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

Controller Manager(kube-controller-manager): Controller Manager 负责管理 Cluster 各种资源,保证资源处于预期的状态

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

Pod 网络 : Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络

3、Node 架构

Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime

Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络

4、Node 架构概念解析

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

kube-proxy : service 在逻辑上代表了后端的多个 Pod,外界通过 service 访问 Pod。service 接收到的请求是如何转发到 Pod 的呢?这就是 kube-proxy 要完成的工作,每个 Node 都会运行 kube-proxy 服务,它负责将访问 service 的 TCP/UPD 数据流转发到后端的容器。如果有多个副本,kube-proxy 会实现负载均衡

Pod 网络 : Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络

5、为什么Master 上也有 kubelet 和 kube-proxy

因为Master 上也可以运行应用,即 Master 同时也是一个 Node

以上是关于Kubernetes 的架构了解的主要内容,如果未能解决你的问题,请参考以下文章

kubernete的证书总结

kubernete的证书总结

Kubernetes 的架构了解

你不得不了解 Helm 3 中的 5 个关键新特性

你不得不了解 Helm 3 中的 5 个关键新特性

滴滴弹性云:从物理机到Kubernetes的那些坑与心得