1.全称Kubernetes(希腊语,舵手/领航员的意思)
2.容器管理平台
3.应用部署方式的演进

●物理机部署:应用直接部署在物理机上
缺点:
1) 无法控制应用的资源边界;多个应用部署在同一物理机上,相互竞争资源。
2) 应用间的隔离性差;某个应用可能导致物理机宕机,从而导致其他应用不可用。
●虚拟机部署:在一台物理机上,虚拟化出多个虚拟机,应用部署在不同的虚拟机中
优点:
1) 隔离性强;操作系统级别的隔离,一个虚拟机挂掉,不影响其他虚拟机。
缺点:
1) 重量级,资源占用高;硬件虚拟化,每台虚拟机都运行一个完整的操作系统。
2) 启动速度慢;启动一个完整的操作系统,一般需要耗费几分钟时间。
3) 虚拟机镜像大;一般在几G左右
●容器化部署:在一台物理机上,运行多个容器,应用跑在容器中
优点:
1) 轻量级,资源占用少;操作系统虚拟化,容器共享宿主机的linux kernel。
2) 启动速度快;相当于启动一个进程,启动时间在秒级别。
3) 进程级的隔离;一个容器挂掉,不影响其他容器。
4) 可移植性强;容器与宿主机的操作系统解耦,可在不同操作系统的物理机间移植。
缺点:
1) 隔离性一般;进程级别的隔离
4.为什么需要k8s
●应用自愈:在生产环境,需要保证应用的高可用,一个应用副本挂掉后,需要保证另一个应用副本自动上线。
●网络通信:通过CNI网络插件让容器组能相互通信(包括不同节点上的容器),提供外部应用访问容器的能力。
●服务发现及负载均衡:通过CoreDNS组件将容器组注册到DNS服务中,其他容器组可以通过对应的DNS名称访问;当应用存在多个副本时,可以自动实现负载均衡。
●通用存储:可通过CSI插件实现持久化存储,容器可自动挂载持久化存储卷,就像使用本地文件存储系统一样。除了提供持久化存储,还提供临时存储(EmptyDir)、本地存储(HostPath)、配置项(ConfigMap)等存储项。
●弹性伸缩:可根据容器组的内存/CPU使用情况,自动增加、减少容器组的副本数。
●资源调度:可根据节点的内存/CPU等资源使用情况,将容器组调度到合适的节点上。