文章目录
序言
序言:本文将从,第一节:kubernetes解决的问题、组件和工作原理;
1 kubernetes概述
1.1 kubernetes解决的问题
1.1.1 部署方式的演变
传统部署 | 虚拟化部署 | 容器化部署 | |
---|---|---|---|
解释 | 早期,直接将应用程序部署在物理机上 | 在一台物理机上运行多个虚拟机,每个虚拟机都是一个独立环境 | 与虚拟化类似,但是共享了操作系统 |
优点 | 简单,不需其他技术参与 | 程序环境不会相互影响,每个虚拟机都是一个环境 | 保证每个容器拥有自己的文件系统、CPU等。实现基础架构解耦,容器化应用程序可以跨云服务器进行部署 |
缺点 | 不能为程序资源使用边界,程序间容易产生影响 | 增加了操作系统,浪费部分资源 | ① 一个容器故障停机,如何让另一个容器启动去替补停机的容器;② 当并发访问变大时,如何横向扩展容器数量 |
1.1.2 容器化部署——容器编排问题
1.2 kubernetes组件
1.2.1 kubernetes组件调用关系
组件 | 功能 |
---|---|
master(控制节点) | 集群的控制平面,负载集群的决策(管理) |
ApiServer | 资源操作的唯一入口,接收用户输入命令,提供认证、授权、API注册和发现等机制 |
Scheduler | 负责集群资源调度,按照预定调度策略将pod调度到相应node节点 |
ControllerManger | 负责维护集群状态,诸如程度部署安装、故障检测、自动扩展、滚动更新等 |
Etcd | 负责存储集群中各种资源对象信息 |
node(工作节点) | 集群的数据平面,负责为容器提供运行环境(干活) |
Kubelet | 负责维护容器生命周期,即通过控制docker,来创建、更新、销毁容器 |
KubeProxy | 负责提供集群内部服务发现和负载均衡 |
Docker | 负责节点上容器各种操作 |