随着容器化技术深入各大公司,与之而来的就是容器化集群的考虑,资源管理平台应运而生!

现存资源管理器

Docker Swarm:Docker 引擎自我实现(较新版本中),微形、轻量级 2019 年 7 月 阿里云宣布取消 Docker Swarm 部署入口

Apache Mesos:伯克利大学研发,随后在 推特 大规模采用,在 2019 年 8 月 被 推特公司弃用,转型 Kubernetes

Kubernetes:由 Google 公司开源至 CNCF,前身谷歌内部资源管理器 Borg (已在 Google 内部运行 10 年)采用 Go 语言重构,已经成为今天可以说是唯一的选择

Kubernetes 组件说明

Kubernetes 架构.png

Kubernetes API Server
作为 Kubernetes 系统的入口,其封装了核心对象的增删改查操作,以 RESTful API 接口方式提供给外部客户和内部组件调用。维护的 REST 对象持久化到 Etcd 中存储

Kubernetes Scheduler
新建立的 Pod 进行节点 (node) 选择 ( 即分配机器 ),负责集群的资源调度。组件抽离,可以方便替换成其他调度器

Controller Manager
负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

Kubelet
负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理

Container runtime
负责镜像管理以及 Pod 和容器的真正运行(CRI)

Kube-proxy
负责为 Service 提供 cluster 内部的服务发现和负载均衡

CoreDNS
负责为整个集群提供 DNS 服务

Ingress Controller
为 K8S 中的服务提供外网入口

Prometheus
为整个集群提供资源监控能力

Dashboard
提供 B/S 的访问体系,允许用户通过 web 进行集群管理及设置

Federation
提供跨可用区的集群,提供不同数据中心的 K8S 集群的管理能力

Kubernetes 授课视屏已共享