kubernetes是一个容器编排工具,相当于是管理容器的上层应用。像docker容器都是运行在物理机器或者虚拟机上的。对容器的管理需要人为管理,这样既不方便也不能充分的利用机器的资源,不能够物尽其用。而kubernetes可以更好的管理容器,合理的分配机器资源。
一个K8s集群是由分布式存储(etcd)、服务节点和控制节点(Master)构成的。所有的集群状态都保存在etcd中,Master节点上则运行集群的管理控制模块。Node节点是真正运行应用容器的主机节点,在每个node节点上都会运行一个Kubelet代理,控制该节点上的容器、镜像和存储卷等
下面我简单的看一下kubernetes一个简单的架构图
master和node都是对应的物理机或者虚拟机
master
master是kubernetes的管理者,相当于是整个集群的大脑。集群的所有操作都通过master来完成。master进行node的管理,监视每一个node的资源使用情况,根据资源的情况,对node上的容器进行管理。
node
node是集群中启动容器的节点。一个node对应一个物理机或者虚拟机。每一个node上启动的容器都是通过master来调度的。
故障迁移:当某一个node节点关机或挂掉后,node节点上的服务会自动转移到另一个node节点上,这个过程所有服务不中断。这是docker或普通云主机是不能做到的
资源调度:当node节点上的cpu、内存不够用的时候,可以扩充node节点,新建的pod就会被kube-schedule调度到新扩充的node节点上
资源隔离:创建开发、运维、测试三个命名空间,切换上下文后,开发人员就只能看到开发命名空间的所有pod,看不到运维命名空间的pod,这样就不会造成影响,互不干扰。传统的主机或只有docker环境中,登录进去就会看到所有的服务或者容器,因为采用容器,进程之间互不影响。
安全:不同角色有不同的权限,查看pod、删除pod等操作;RBAC认证增加了k8s的安全
负载均衡:k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便。
以下缺点是在实际使用中遇到的
https://www.cnblogs.com/cnblx/p/11653152.html.
https://kubernetes.io/zh/docs/home/.
本文地址:https://blog.csdn.net/youngZ_H/article/details/107427789
如对本文有疑问, 点击进行留言回复!!
多线程、同步工作原理、死锁案例、Lock接口、线程的生命周期的讲解及实现
网友评论