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