共计 1246 个字符,预计需要花费 4 分钟才能阅读完成。
一、什么是 Kubernetes
它是一个全新的基于容器技术的分布式架构领先方案,确切地说,Kubernetes 是谷歌严格保密十几年的秘密武器 Borg 的一个开源版本。Borg 是谷歌内部使用的大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。
环境不一致使得应用部署出现了各种问题,从而产生了 Docker 容器来解决应用部署的问题。而大集群上容器的部署、伸缩和管理的各种问题,衍生出来了容器编排引擎,比较出名的有 K8S(Kubernetes) 和 Docker Swarm。
Kubernetes 是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境的容器编排,Kubernetes 名字太长了,叫起来有点麻烦,而 Kubernetes 首字母与结尾字母之间有 8 个字母,因此被称作 K8S。
如果我们使用 Kubernetes:
1、与业务无关的底层代码或功能模块,都可以立刻从我们的视线中消失
2、不必再费心于负载均衡器的选型和部署实施问题
3、不必再考虑引入或自己开发一个复杂的服务治理框架
4、不必再头疼于服务监控和故障处理模块的开发
二、Kubernetes 发展史
K8S 是建立在谷歌内部有超过 15 年的历史,来源于谷歌内部的 Borg 系统,集结了 Borg 的精华。
2014 年 6 月 谷歌云计算专家埃里克·布鲁尔(Eric Brewer)在旧金山的发布会为这款新的开源工具揭牌。
2015 年 7 月 22 日 K8S 迭代到 v 1.0 并正式对外公布
大约每 100 天更新一次,如今已是 V 1.18.1 版本
三、Kubernetes 架构图
Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Borg 是谷歌内部的大规模集群管理系统,负责对谷歌内部很多核心服务的调度和管理。Borg 的目的是让用户不必操心资源管理的问题,让他们专注于自己的核心业务,并且做到跨多个数据中心的资源利用率最大化。
Kubernetes 借鉴了 Borg 的设计理念,整体架构跟 Borg 非常像,如下图所示:
四、Kubernetes 特点
Kubernetes 是一个开放的开发平台,它不局限于任何一种语言,没有限定任何编程接口,所以不论是用 Java、Go、C++ 还是用 Python 编写的服务,都可以被映射为 Kubernetes 的 Service(服务),并通过标准的 TCP 通信协议进行交互。此外,Kubernetes 平台对现有的编程语言、编程框架、中间件没有任何侵入性,因此现有的系统也很容易改造升级并迁移到 Kubernetes 平台上。
Kubernetes 作用
Kubernetes 提供了完善的管理工具(开发、部署、测试、运维、监控)因此,Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式完备的分布式系统开发和支撑平台。
Kubernetes 同时具有完备的集群管理能力:
1、故障自愈
2、服务发现与负载均衡
3、自动部署与回滚
4、自动伸缩(扩容与缩容)