什么是Kubernetes?
Kubernetes一个用于容器集群的自动化部署、扩容以及运维的开源平台。
使用Kubernetes,你可以快速高效地响应客户需求:
动态地对应用进行扩容。 无缝地发布新特性。 仅使用需要的资源以优化硬件使用。
我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负 担。
Kubernetes是:
简洁的:轻量级,简单,易上手 可移植的:公有,私有,混合,多重云(multi-cloud) 可扩展的: 模块化, 插件化, 可挂载, 可组合 可自愈的: 自动布置, 自动重启, 自动复制
Kubernetes项目是Google在2014年启动的。Kubernetes构建在Google公司十几年的大规模高 负载生产系统运维经验之上,同时结合了社区中各项最佳设计和实践。
准备好开始了吗?
想了解为何要使用容器技术?
下面是一些关键点:
以应用程序为中心的管理: 将抽象级别从在虚拟硬件上运行操作系统上升到了在使用特 定逻辑资源的操作系统上运行应用程序。这在提供了Paas的简洁性的同时拥有IssS的灵 活性,并且相对于运行12-factor应用程序有过之而无不及。 开发和运维的关注点分离: 提供构建和部署的分离;这样也就将应用从基础设施中解耦。 敏捷的应用创建和部署: 相对使用虚拟机镜像,容器镜像的创建更加轻巧高效。 持续开发,持续集成以及持续部署: 提供频繁可靠地构建和部署容器镜像的能力,同时可 以快速简单地回滚(因为镜像是固化的)。 松耦合,分布式,弹性,自由的微服务: 应用被分割为若干独立的小型程序,可以被动态 地部署和管理 -- 而不是一个运行在单机上的超级臃肿的大程序。 开发,测试,生产环境保持高度一致: 无论是再笔记本电脑还是服务器上,都采用相同方式运行。 兼容不同的云平台或操作系统上: 可运行与Ubuntu,RHEL,on-prem或者Google Container Engine,覆盖了开发,测试和生产的各种不同环境。 资源分离: 带来可预测的程序性能。 资源利用: 高性能,大容量。
‘Kubernetes不是:
Kubernetes不是PaaS(平台即服务)。
Kubernetes并不对支持的应用程序类型有任何限制。 它并不指定应用框架,限制语言类 型,也不仅仅迎合 12-factor应用程序模式. Kubernetes旨在支持各种多种多样的负载类 型:只要一个程序能够在容器中运行,它就可以在Kubernetes中运行。 Kubernetes并不关注代码到镜像领域。它并不负责应用程序的构建。不同的用户和项目 对持续集成流程都有不同的需求和偏好,所以我们分层支持持续集成但并不规定和限制 它的工作方式。 另一方面, 确实有不少PaaS系统运行在Kubernetes之上,比如Openshift和Deis。同样 你也可以将定制的PaaS系统,结合一个持续集成系统再Kubernetes上进行实施:只需生 成容器镜像并通过Kubernetes部署。 由于Kubernetes运行再应用层而不是硬件层,所以它提供了一些一般PaaS提供的功能, 比如部署,扩容,负载均衡,日志,监控,等等。无论如何,Kubernetes不是一个单一 应用,所以这些解决方案都是可选可插拔的。
Kubernetes并不是单单的"编排系统";它排除了对编排的需要:
“编排”的技术定义为按照指定流程执行一系列动作:执行A,然后B,然后C。相反, Kubernetes有一系列控制进程组成,持续地控制从当前状态到指定状态的流转。无需关 注你是如何从A到C:只需结果如此。这样将使得系统更加易用,强大,健壮和弹性。
Kuberbetes这个名字是什么意思?k8s又是什么?
Kubernetes这个名字源自希腊语,意思是“舵手”,也是“管理者”,“治理者”等词的源头。k8s是 Kubernetes的简称(用数字『8』替代中间的8个字母『ubernete』)