Kubernetes 架构简析

Kubernetes (K8s) 作为现在最热的微服务框架,掌握它的架构原理是我们学习、部署和诊断 K8s 的基础。K8s 整体上分为两个部分,第一个部分是 Master,这是 K8s 的大脑。第二个部分是 Node,这个是工作集,一般来说就是一台台虚机。一个最小的完整 K8s 安装包括 两个 Master 和 3 个 Node。

K8s 架构图

K8s Master

K8s Master 至少包括 4 个进程,它们分别是:

  • API Server
  • Scheduler
  • Controller Manager
  • etcd
API Server

通过提供RESTful API 来控制整个 K8s。通常我们使用 kubectl 来和 API Server 交互以达到控制 K8s 的目的。

etcd

这是 K8s 的数据库。 etcd 是一个高可靠、高可扩展的键值数据库,保存了集群中所有节点的数据。

Scheduler

Scheduler 监控所有节点 (Node),为新创建的、还没有分配到节点 (Node) 的 Pod, 选择合适的节点。选择节点考虑的因素有资源需求,软硬件约束条件,本地的数据资源等。

Controller Manager

控制器管理器包括,节点管理器、副本控制器,端点控制器,以及服务账号和令牌控制器。
这里的重点是节点管理器和副本控制器。节点管理器负责通知和响应节点的故障,而副本控制器负责为系统中的每个副本控制器对象维护正确数量的 Pod。

K8s Node

K8s Node 通常包括 3 个进程:

  • 容器
  • Kube-proxy
  • Kubelet

容器管理进程可以是 Docker, containerd, 或者CRI-O等,一般我们会使用 Docker。

Kube-proxy 负责 K8s Service 对外和对内通信,把服务请求路由到 Pod 上,proxy 优化了网络访问路径,比如 Pod 要访问数据库服务,Proxy 会优先访问 pod 自身所在的 Node 中的数据库 pod,而不会路由到其他的 Node 上的数据库,这样就可以提升网络性能。

Kubelet 负责管理 Pod 中的容器,执行 api server 发来的指令,并返回结果。

Minikube

Minikube 是 K8s 提供的集成开发环境,它允许我们在一台机器上安装整套 K8s。根据上面的介绍,我们可以知道,Minikube 会上文提到的包括 7 个进程。

总结

本文介绍了 K8s 的架构。K8s 通常包括 Master 服务器和 Node 服务器。Master 服务器通常包括 4 个管理用的进程,它们是 API Server,etcd,Scheduler 和 Controller Manager。而 Node 服务器包括 3 个进程,它们是容器管理,比如 Docker,Kube-proxy,以及 Kubelet。

参考链接

Kubernetes 的 9 个核心组件
Kubernetes: 如何安装 kubectl
Kubernetes: 几个常用的 kubectl 命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值