同是容器管理系统,Kubernetes为什么那么火?
- 可扩展性。软件可以向外扩展跨越多个Pods实现初步部署,且相关部署可随时进行规模伸缩。
- 可见性。提供状态查询功能以判断部署工人和的完成情况、当前执行状态以及失败问题。
- 节约时间。用户可随时暂停部署并在稍后加以恢复。
- 版本控制。利用新的应用程序镜像版本对已部署Pods进行更新,并在发现当前版本存在不稳定问题时回滚至早期部署版本。
另外,Kubernetes还能够显著简化多种特定部署操作,这一点对于现代应用程序开发者而言极具现实意义。其中具体包括:
- 自动横向扩展。Kubernetes autoscalers能够自动根据特定资源的使用量对Pods的部署数量进行调整(在已定义的限制范围内)。
- 滚动更新。Kubernetes采取“滚动方式”实现编排,且可跨越部署范围内的全部Pods。这些滚更新可进行编排,并以预定义方式配合当前可能尚不可用的Pods数量以及暂时存在的闲置Pods数量。
- 金丝雀部署。作为一项实用性模式,我们在部署新版本之前,通常需要以实验性方式在生产环境中进行试部署,同时保证新旧版本并行运作。在确定一切正常后,逐步提升新部署规模并同步降低原有部署版本规模。
- 与存在强烈专用属性的传统方案不同,Kubernetes能够为广泛的应用类型提供支持。它不会限定应用程序框架(例如Wildfly)、指定受支持语言运行时(Java、Python与Ruby等)、仅适用于12因素应用程序或者区分“应用程序”与“服务”。相反,Kubernetes支持极为广泛的工作负载类型,其中包括无状态、有状态以及数据处理型工作负载。如果应用程序能够在容器内运行,其即可在Kubernetes上正常起效。
4.为云原生应用奠定基础鉴于当前容器技术获得的高度关注,越来越多管理与编排工具开始陆续出现。目前流行的方案包括Apache Mesos with Marathon、Docker Swarm、AWS EC2 Container Service(简称ECS)以及HasiCorp的Nomad。
当然各类方案皆拥有自己的特色与优势。Docker Swarm能够与Docker运行时紧密对接,帮助用户更轻松地由Docker过渡至Swarm;Mesos with Marathon不仅限于容器范畴,亦可部署各种类型的其它应用程序;AWS ECS可供AWS用户轻松访问。
然而,Kubernetes集群能够运行在EC2之上,并与AWS旗下的各类服务实现对接,具体包括Amazon弹性块存储(Elastic Block Storage)、弹性负载均衡(Elastic LoadBalancing)、自动规模伸缩组(Auto Scaling Groups)等。
这些框架在功能与特性方面存在大量交集,不过凭借着自身架构、创新成果以及庞大的开源技术社区等优势,Kubernetes仍然保持着极高人气。
Kubernetes的出现标志着DevOps的发展迎来突破,因为其允许开发者充分满足现代软件的开发要求。在缺少Kubernetes的情况下,开发团队常常被迫自行编写软件部署、扩展及更新工作流。部分企业甚至会建立大型团队单独处理此类任务。Kubernetes能够帮助我们充分发挥容器技术的既有优势,同时构建起能够在任意环境下运行的云原生应用程序,而不再需要受缚于云特定要求。
总结而言,Kubernetes代表着我们长久以来一直期待的高效应用程序开发与操作模式。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
容器技术干货┃K8s存储篇之PV(PVC)
前言 Kubernetes集群中,如果没有存储,所有pod中应用产生的数据都是临时的,pod挂掉,被rc重新拉起之后,以前产生的数据就丢掉了,这对有些场景是不可接受的,此时,外部存储就显得尤为重要。 这里重点介绍两个API资源: PersistentVolume(PV):集群中的一块网络存储,是集群中的资源,可类比集群中的Node资源; PersistentVolumeClaim(PVC) : 用户对存储的需求,可类比pod,pod消费node资源,PVC就消费PV资源。 当然还有StorageClass等概念,这里不做详细说明(稳定后,后期文章专门介绍)。K8s存储管理主要分布在两个组件中(这里不包括api):kube-controller-manager和 kubelet。由于涉及的点比较多,我们分成几篇文章来介绍,本篇主要分析PersistentVolume。 代码基于社区,commit id: 65ddace3ed8e7c25546d12912c8dfdcd06ffe1e0 用例 Kubernetes支持的外部存储非常的多,如:AWSElasticBlockStore,Azur...
- 下一篇
k8s 使用篇 - deployment
Deployment管理Pods和ReplicaSets,提供声明式更新。和老的ReplicationController(命令式管理)对应,发展趋势是取代老的,所以后面也不会起文章单独讨论ReplicationController了。 但由Deployment-controller管理的Pods和ReplicaSets最好自始至终都由Deployment-controller管理,最好不要手动去管理,以免发生冲突。 创建Deployment 如下一个Deployment的配置(nginx-deployment.yaml),创建一个ReplicaSet包含3个nginx Pods apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- MySQL8.0.19开启GTID主从同步CentOS8
- Red5直播服务器,属于Java语言的直播服务器
- Mario游戏-低调大师作品
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池