文章目录
- Kubernetes(一)组件概况
- 部署方式演变
- kubernetes组件概况
- kubelet命令
Kubernetes(一)组件概况
部署方式演变
- 传统部署
- 直接将应用部署在物理机上,难以定义资源使用界限
- 虚拟化部署
- 一台物理机上可以运行多个虚拟机,每个虚拟机都是独立的环境
- 容器化部署
- 和虚拟化部署相似,但是共享底层物理机操作系统,更加轻量
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM3UTNxgTMklDMwgjN0MTZyYzX4ITMzATM5IzLcdDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
为什么需要kubernetes?
- 容器化部署有以下缺陷:
- 当某个容器down掉了,如何能快速启动一个新的容器对外提供服务
- 当并发请求量上来了,如何快速启动一批容器分摊请求,当高峰过去,如何回收多余的容器,保证系统资源,这其实就是容器编排问题,kubernetes就是解决容器编排的工具
kubernetes的作用:本质就是对容器集群进行自动化管理
- 自我修复:一旦某个容器崩溃,能快速重启新的容器
- 弹性伸缩:可以根据需要,自动对集群中的容器数量进行调整
- 服务发现:服务可以通过自动发现的形式找到他所依赖的服务
- 负载均衡:多容器服务能自动实现容器负载均衡
- 版本回退:如果某个发布镜像版本有问题,可以实现快速回顾到相应的版本
- 存储编排:可以根据容器自身的需求快速创建存储卷
kubernetes组件概况
一个kubernetes集群主要由控制节点(master节点)和工作节点(Node)组成,每个节点都会安装不同的组件
- master节点:集群的控制平面,负责集群的决策
- ApiServer:资源操作的唯一入口,在kubernetes中一切皆资源,操作的就是资源,接收用户命令,提供认证,授权,API注册和发现等机制
- Scheduler:负责集群的调度,根据调度策略将Pod调度到相应的Node节点上
- ControllerManager:负责维护集群的状态,比如Pod中容器的启动,程序的部署安排,故障检测,自动扩展,弹性伸缩,滚动更新等
- ETCD:负责存储集群中节点的对象信息,比如我在集群启动后,master节点的APIServer能知道目前有多少Node节点
- Node节点:集群的数据平面,实际提供服务的节点,为容器提供运行环境
- kubelet:负责维护容器的生命周期,控制docker来创建,更新,销毁容器,controllerManager将启动命令交给Node节点,由kubelet启动相应容器
- KuberProxy:负责提供集群内部的服务发现和负载均衡
kubelet命令
格式:
kubelet [command] [type] [name] [tags]
command: