Kubernetes是什么
简而言之,kubernetes就是一个谷歌开源的容器集群管家。有了kubernetes我们就可以轻松的管理系统中的容器的创建和销毁,并可以轻松的进行扩容和部署。kubernetes是云时代的基础设施,是微服务架构的管理者,是Docker的避风港和掌舵者。
使用Kubernetes的原因
1、方便容器管理
2、增强服务的可伸缩性,提高高峰期吞吐
3、拥抱云时代和微服务
4、为了开发更庞大更复杂的系统
Kubernetes的核心是Service
Service是一个抽象出来的服务,它拥有一个唯一的名字,一个虚拟IP(Cluster IP、ServiceIP)和端口号,它能提供某种服务,如数据库访问、redis缓存或者是某一个微服务,它是抽象的,实际上它是一个包含这些服务能力的多组容器应用。它通过暴露自己的Endpoint来为别的应用服务。通过这么一个抽象的Service,Kubernate实现了透明的负载均衡和故障恢复机制,我们不必担心某一个服务在调用时崩溃从而影响了别的服务,Kubernetes会自动的启动新的容器,并且服务的虚拟IP和端口也不会改变。
一个服务包含多个有服务进程的容器组,Kubernetes叫这些容器组为Pod。
服务和Pod并不是强关联关系,他们依靠lable来进行一种灵活的关联。每一个Pod都有一个标签,比如Mysql的标签name=mysql。服务通过一种类似于CSS选择器的方式来选择这些Pod,它被叫做标签选择器,通过设置Service的标签选择器的选择条件为name=mysql,就可以将这些Pod和该服务关联起来。
Pod是节点上的一组容器
Pod是一组容器,它们被运行在节点(Node)上,这个节点既可以是实际的物理机也可以是虚拟机,在一个节点上可以运行很多的Pod,具体运行多少取决于Pod所提供服务的体量和节点的配置。每个Pod都有一个核心容器,它被称为Pause,除了Pause这个核心容器外,其他容器就是用来提供业务服务的业务容器。业务容器被pause容器所管理,它们也共享着Pause容器的网络栈和Volume数据卷。
Kubernetes的集群管理也是主从机制
Kubernetes的集群包含一个Master节点和一群工作节点。故名思意,Master节点是集群的核心,是集群的君王,它管理着其余大大小小的工作节点,在Master上运行着kube-apiserver、kube-controller-manager、kube-scheduler等进程。这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等功能。工作节点就如同一个个分支部门,它们执行着来自君主Master节点的调度指令,并为业务提供服务。在工作节点上运行着kubernetes的kubelet、kube-proxy服务,这些服务进程被用来管理Pod的创建、启动、监控、重启、销毁,以及实现负载均衡。
通过RC(Replication Controller)来控制Pod
一个RC中包含了Pod的定义、副本数量、label。当创建好一个RC之后,kubernetes就会依据这个RC来小心的维护Pod的数量,如果满足lable条件的Pod不足声明的副本数量,kubernetes就会自动进行创建,这个过程是完全自动的。有了RC,给服务扩容就是把副本数量的数字增加这样简单了。
更新中..
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
评论区#
还没有评论哦,期待您的评论!
引用发言