文章目录
1. 简介
Kubernetes项目部来源于Brog,对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户
Kubernetes的好处:
- 隐藏资源管理和错误处理,用户仅需关注应用的开发
- 服务高可用,高可靠
- 可将负载运行在成千上万的机器联合而成的集群中
k8s集群包含有节点代理kubelet和master组件(APIs,scheduler,etc),一切基于分布式的储存系统
master:
- etcd保存master的数据,保存了整个集群的状态,可以堆栈或分布式;
- API server负责接入所有的授权和调度,是资源操作的唯一入口,提供认证,授权,访问控制,API注册和发现机制
- controller manager负责维护集群的状态,比如故障检测,自动扩展,滚动更新等
- scheduler负责资源的调度,控制预定的调度策略将pod调度到相应的机器上
- container runtime负责镜像管理以及pod和容器的真正运行(CRI)
node:
- 每个node节点上有一个专门的代理kubelet,负责该节点上所有容器的启动;此外还有一个kuber-proxy,负责为service提供集群内部的服务发现和负载均衡
除了上述核心组件,还有一些推荐的Add-ons:
- kude-dns:负责为整个集群提供DNS服务
- ingress controller:为服务提供外网入口
- heapster:提供资源监视
- dashboard:提供GUI
- federation:提供跨区可用集群
- fluentd-elasticearch:提供集群日至采集,储存与查询
kubernetes设计理念和功能其实类似于linux的分层结构: