目录
2.4.4 大概过程
1.首先要知道,Kubernetes为什么简称为k8s?
Kubernetes的第一个字母是K,最后一个字母是s,而K和s之间隔了八个字母
所有就叫做k8s
2.Kubernetes概述
2.1 kubernetes基本介绍
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配 置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等 操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于 可移植性.
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件 系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署, 由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进 行迁移。
使用容器化的好处说简单点就是,可以做到带环境安装,让生产环境和测试环境保持一致,让部署更简单,更快速。可以使运营人员或者开发人员,不需要复杂的手工配置,可以使用kubernetes做到自动化部署,大规模回滚升级的一些操作,利于应用扩展
k8s是谷歌在2014年开源的容器化集群管理系统
2.2 kubernetes的特性
- 自动装箱
基于容器对应用运行环境的资源配置要求自动部署应用容器
说简单点,让部署的过程不需要手动过多的干预,通过k8s可以让部署自动化- 自我修复(自愈能力)
当容器失败时,会对容器进行重启
当所部署的 Node 节点有问题时,会对容器进行重新部署和重新调度
当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务- 水平扩展
通过简单的命令、用户 UI 界面或基于 CPU 等资源使用情况,对应用容器进行规模扩大 或规模剪裁- 服务发现
用户不需使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和 负载均衡- 滚动更新
可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新- 版本回退
可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退- 密钥和配置管理
在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。- 存储编排
自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要 存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph 等)、公共云存储服务- 批处理
提供一次性任务,定时任务;满足批量数据处理和分析的场景
2.3 kubernetes集群架构组件
分为Master (主控节点) 和 node (工作节点)
2.3.1 Master (主控节点)
- API server : 集群统一入口,以restful方式提供的各种操作,交给etcd存储
- scheduler: 节点调度,选择node节点应用部署
- controller-manager : 处理集群中常规后台任务,一个资源对应一个控制器
- ectd : 存储系统,用于保存集群相关的数据
2.3.2 node (工作节点)
- kubelet : master排到node节点代表,管理本机容器。
- kube-proxy : 提供网络代理,负载均衡等操作。
2.4 k8s核心概念
2.4.1 Pod
- 最小的部署单元
- 一组容器的集合
- 一个pod中的容器是共享网络的
- 生命周期是短暂的
2.4.2 controller
- 确保预期的pod副本数量
- 无状态的应用部署,另一个节点挂掉,里面的pod直接可以到另外一个节点上使用
- 有状态的应用部署,依赖存储,网络ip要唯一,要有特定条件才可以使用
- 确保所有的node运行同一个pod
- 一次性任务和定时任务
2.4.3 Service
- 定义一组pod的访问规则
2.4.4 大概过程
通过Service统一入口进行访问,由controller创建pod进行部署