一、简介
为什么要使用K8S?
技术优势:
- 优秀的API设计以及简洁高效的架构设计,主要组件个数很少,彼此之间通过接口调用;
- 基于微服务模式的多层资源抽象模型,兼顾灵活性与可操作性,提出的Pod模型被许多平台借鉴;
- 可拓展性好,模块化容易替换,伸缩能力极佳,1.2.0版本单机集群支持1000个节点,同时运行30000个pods
- 自动化程度高
- 部署支持多种环境,包括虚拟机、裸机部署
- 丰富的运维工具,方便用户对集群进行性能测试、问题检查和状态监控
- 自带控制台、客户端命令等
二、模块说明
文件名 | 说明 |
---|---|
hyperkube | 总控程序,用于运行其他Kubernetes程序 |
etcd | 保存整个集群信息(包括:集群状态等) |
kube-apiserver | 负责与etcd交互,负责etcd的增删改查(提供了资源操作的唯一入口);并提供认证、授权、控制访问、API注册和发现操作 |
kube-controller-manager | 维护集群的状态,比如:故障检测、自动扩展、滚动更新等 |
kubectl | 客户端命令行工具 |
kubelet | 维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理 |
kube-proxy | proxy主程序 |
kube-scheduler | 资源的调度,按照预定的调度策略将Pod调度到对应的机器上 |
Kubernetes Master节点安装部署etcd、kube-apiserver、kube-controller-manager、kube-scheduler服务进程。我们使用kubectl作为客户端与Master进行交互操作,在工作Node上仅需部署kubelet和kube-proxy服务进程。