初识Kubernetes

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 

目录

一、Kubernetes的背景

1、编排器

2、容器化应用

3、云原生应用

4、微服务应用

二、Kubernetes的诞生

1、Kubernetes和Docker

2、Kubernetes与Docker Swarm对比

3、Kubernetes与Borg

三、云操作系统

1、云的规模

2、应用的调度

3、简单的流程

致谢


一、Kubernetes的背景

Kubernetes是一个应用编排器(orchestrator),主要用于对容器化的云原生微服务应用进行编排

1、编排器

编排器是一套部署和管理应用程序的系统。它能够部署应用,并动态地响应变化。例如,Kubernetes包括但不仅限于以下功能;

  • 部署应用程序
  • 根据需要动态扩缩容
  • 当出现故障时自愈
  • 进行不停机的滚动升级和回滚

Kubernetes最突出的优点是:可在无干预决策下自动完成以上任务

2、容器化应用

容器化应用就是运行在容器中的应用

在容器技术出现之前,应用程序可以运行在物理机或虚拟机中。容器是关于应用打包和运行方式的新的迭代,它更加快速、轻量,也比服务器或虚拟机更加适合现代的业务需求。

  • 开放系统(open-system)时代(大约20世纪80年代和20世纪90年代)应用运行在物理机上;
  • 虚拟机时代(大约2000-2010年),应用运行在虚拟机中
  • 云原生(cloud-native)时代(如今),应用运行在容器

同时,Kubernetes也可以编排其他负载类型,包括虚拟机serverless功能(serverless function),不过最普遍的情况是用于容器的编排;

3、云原生应用

云原生应用是被设计用来满足现代业务需求自动扩缩容、故自愈、滚动升级等)并且运行在Kubernetes之上的应用

云原生应用并非只能运行在公有云上;也可以运行在其他任何Kubernetes平台之上,甚至包括自建数据中心

4、微服务应用

一个微服务应用,是指由许多小而专的服务组件,通过互相通信而组成的套完整的业务系统。以一个电子商务系统为例,它可能由以下功能独立的微服务组成。

  • Web前端
  • 分类服务
  • 购物车
  • 授权服务
  • 日志服务
  • 持久化存储

每一个单独的服务都可以被称为一个微服务。通常每个微服务都可以由不同的团队负责研发和运维,有自己的发布节奏,并独自进行扩缩容;这种构建方式正是云原生应用的一个很重要的特点;

Kubernetes可用于部署和管理(编排)那些能够以容器的形式打包和运行(容器化)的应用,这些应用的构建方式(云原生微服务)使它们能够根据业务需求实现扩缩容、故障自愈和在线升级。

二、Kubernetes的诞生

1、Kubernetes和Docker

Kubernetes和Docker是两个互补的技术。比如,通常人们会使用Docker进行应用的开发,然后用Kubernetes在生产环境中对应用进行编排

在这样的模式中,开发者使用自己喜欢的语言编写代码,然后用Docker进行打包、测试和交付。但是最终在测试环境或生产环境中运行的过程是由Kubernetes来完成的;

Docker是一种更偏向底层的技术,它负责启停容器的操作;而Kubernetes是一种更加偏向上层的技术,它注重集群范畴的管理,比如决定在哪个节点上运行容器、决定什么时候进行扩容缩容或升级;

发现,Docker并非唯一支持的容器运行时。事实上、Kubernetes基于一些列特性实现了对容器运行时的抽象(从而兼容不同的底层容器运行时)

  • 容器运行时接口(Container Runtime Interface,CRI)是Kubernetes用来与第三方容器运行时进行对接的标准化的抽象层。这样容器运行时与Kubernetes是解耦的,同时又能够以一种标准化的方式子以支持。
  • 运行时类(Runtime Class)是Kubernetes 1.12引入的新特性,并在1.14版中升级为beta。它对不同的运行时进行了归类。例如,gVisor或Kata容器运行时或许比Docker和Containerd能提供更优的隔离性。

2、Kubernetes与Docker Swarm对比

3、Kubernetes与Borg

Kubernetes并非Borg或Omage的开源版本。更恰当的说是Kubernetes与Borg和Omage有着相同的基因和家族史。

三、云操作系统

Kubernetes已经成为部署和管理云原生应用的事实上的标准平台;类似云上的操作系统(OS);试想以下情况:

  • 当在物理服务器上安装一套传统的操作系统(Linux或Windows)时,操作系统会对服务器的物理资源进行抽象,并对进程进行调动;
  • 当在云上安装Kubernetes时,它会对云上的资源进行抽象,并对多种云原生微服务应用进行调度;

像Linux系统能对不同的服务硬件进行统一的抽象一样,Kubernetes也能够对不同的私有云和共有云进行统一的抽象。最终,只要运行Kubernetes,就不需要关心底层是运行在自建数据中心,还是边缘计算集群,抑或是共有云中了;

所以,Kubernetes能实现真正意义上的混合云,使用户跨越不同的公有云或私有云实现对负载的无缝迁移和均衡。也可在不同的云之间进行迁移,意味不会永远绑定在最初确定的云上。

1、云的规模

2、应用的调度

Kubernetes对云和数据中心的资源进行了管理;总体来说,云或数据中心就是一个包含计算、存储与网络的资源池Kubernetes对它进行了抽象。意味着我们无须明确对应用运行在哪个节点或存储卷上进行硬编程,甚至无须关系应用运行在哪个云上;

3、简单的流程

将应用打包成容器,声明其运行方式,然后交给Kubernetes来启动它们并保持其运行状态。Kubernetes同样也提供了丰富的用来检查运行状态的工具和API;

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李学不完

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值