K8s概述
Kubernetes是Google开源的容器集群管理系统。最初源于谷歌内部的Borg,是Google基于Borg开源的容器编排调度引擎。它构建在Docker技术之上,为跨主机的容器化的应用提供资源调度,服务发现、高可用管理和弹性伸缩等一整套功能,它提供完善的管理具,涵盖开发、部署测试、运维监控等各个环节。它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,Kubernetes可以帮你将系统自动得达到和维持在这个状态。
K8s特性
自动化部署: yaml部署到k8s,会根据应用程序计算资源需求。自动分配到node。 系统自愈:当成功部署到k8s中,node节点宕机,k8s会重新将pod调度到可用节点。 水平扩展:HPA周期调整RC的副本数量,将用户定义的resource值匹配。 服务发现和负载均衡:内置服务发现功能,为每个容器分配IP,service代理。
自动更新和回滚:监控应用状态,不会同时杀掉应用。 更新出错,自动恢复到原先状态。
K8s架构
Master节点:
Master:集群控制节点,负责整个集群的管理和控制。 API Server: 提供接口,资源增删改查入口。 Controller Manager: 所有资源对象的自动化控制中心。 Scheduler: 负责资源调度。 Etcd:master的持续状态都存在etcd。
Node节点:
Node:工作节点,听从master的工作分配。 Kubelet: Pod容器创建、启停,集群管理等任务。 kube-proxy: 实现service 的通信与负载均衡组件。 Docker: Docker引擎,负责本机容器创建和管理工作。
Kubernetes资源对象-Pod
Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。
Kubernetes资源对象-Replication Controller
RC是K8s集群中最早的保证Pod高可用的API对象。通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。指定的数目可以是多个也可以是1个;少于指定数目,RC就会启动运行新的Pod副本;多于指定数目,RC就会杀死多余的Pod副本。即使在指定数目为1的情况下,通过RC运行Pod也比直接运行Pod更明智,因为RC也可以发挥它高可用的能力,保证永远有1个Pod在运行。
Kubernetes资源对象-Service
一个Pod只是一个运行服务的实例,随时可能在一个节点上停止,在另一个节点以一个新的IP启动一个新的Pod,因此不能以确定的IP和端口号提供服务。要稳定地提供服务需要服务发现和负载均衡能力。 在K8s集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。
Kubernetes资源对象-Deployment
部署表示用户对K8s集群的一次更新操作。可以是创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。滚动升级一个服务,实际是创建一个新的RS,然后逐渐将新RS中副本数增加到理想状态,将旧RS中的副本数减小到0的复合操作;这样一个复合操作用一个RS是不太好描述的,所以用一个更通用的Deployment来描述。以K8s的发展方向,未来对所有长期伺服型的的业务的管理,都会通过Deployment来管理。
Kubernetes资源对象-Replica Set
RS是新一代RC,提供同样的高可用能力,区别主要在于RS后来居上,能支持更多种类的匹配模式。副本集对象一般不单独使用,而是作为Deployment的理想状态参数使用。
Kubernetes资源对象-DaemonSet
长期伺服型和批处理型服务的核心在业务应用,可能有些节点运行多个同类业务的Pod,有些节点上又没有这类Pod运行;而后台支撑型服务的核心关注点在K8s集群中的节点(物理机或虚拟机),要保证每个节点上都有一个此类Pod运行。节点可能是所有集群节点也可能是通过nodeSelector选定的一些特定节点。典型的后台支撑型服务包括,存储,日志和监控等在每个节点上支持K8s集群运行的服务。
Kubernetes资源对象-Job
Job是K8s用来控制批处理型任务的API对象。批处理业务与长期伺服业务的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出了。成功完成的标志根据不同的spec.completions策略而不同:单Pod型任务有一个Pod成功就标志完成;定数成功型任务保证有N个任务全部成功;工作队列型任务根据应用确认的全局成功而标志成功。
|