作者:潘吉祥


欢迎加入k8s学习系列教程,在接下来的系列文章,你将可以在较短的时间内达到入门k8s的效果。

k8s是什么

Kubernetes(K8S)作为Google在2014年发布的一个开源项目,直到发展如今的地步,最大的原因离不开docker容器化的发展,而docker的如火如荼正是受益于微服务架构的推动。

因此k8s也是微服务架构发展的产物,那它到底是干什么的呢?

官方化的解释:“Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,它的目标是让部署容器化的应用简单并且高效,并提供了应用部署,规划,更新,维护的一种机制。”

去掉冗长的修饰定语“kubernetes(以下简称k8s)是一种管理容器的应用”,以前也听人这样说过:“就是统一管理docker的平台”。

虽然这写说法本质没错,但是对于初学者来说可能会显得kubernetes作用不是那么大,因为这里的管理隐形囊括的东西太多了,包括容器伸缩、部署回滚、存储编排、自我修复、服务发现和负载均衡、权限管理等功能。

仔细观察其实可以发现,最前面的定义可能是相对于k8s开发初衷而言的,随着后续的发展,它所承担的任务已经远不止此了。抛开管理容器,k8s在功能上实现了微服务框架部分功能,因此,在这里我以个人的理解来进行解释:它是一个基于容器的微服务构建平台。

K8s为我们带来什么

Kubernetes作为一个基于容器完备的微服务构建平台(完善的集群管理能力),可以在物理机或虚拟机的Kubernetes集群上运行容器化应用,并提供一个以容器为中心的基础架构,满足在生产环境中运行应用的一些常见需求:

  • 多进程协同工作

  • 应用实例扩容缩容

  • 服务负载均衡

  • 应用健康检查

  • 平滑版本更新

  • 服务调度

  • 认证授权管理

  • ……

总之k8s能够帮助我们更加方便快速地开发复杂的微服务系统;它的设计理念(pod)全面拥抱微服务,拥有优秀的动态服务调整能力;而就k8s平台本身,基于master和worker的架构模式,也拥有极强的横向扩展能力。

Springcloud VS k8s

上面解释道k8s是一个基于容器的微服务构建平台,那么和我们当下火热的springcloud有什么区别或者说对比性呢?笔者对于springcloud也学习了一段时间,也搜集参考了一些网上的资料,下面给出核心参考:

Springcloud和k8s都是微服务架构开发的工具,就流行度而言,目前springcloud成为现在微服务开发的主流选择,k8s处于相对辅助的位置。因为springcloud的核心Netflix系列组件在开发之初docker还未出现。

就开发而言,springcloud的方式更早一些,虽然随着servermash理论的广泛传播,对k8s这类管理平台发展起到助推作用,但当下springcloud依然是该理论事实上的标杆。

从开发层级来说,springcloud将微服务问题的解决方案融合到了业务逻辑层面,有过相关学习或开发经验的读者应该知道,通常以Java代码注解的形式嵌入主体代码中。因此springcloud可以说是入侵性较强的,它散布在开发的微服务代码中。

而k8s则不同,k8s将解决方案抽离,从业务代码层面下沉到容器软件层面(如下图所示),这样来说,开发人员在开发阶段只需关注业务实现即可,而不需要考虑微服务的衍生问题,甚至没有感知,比如服务注册和发现、负载均衡和高可用等。从而实现微服务架构中“微服务”和“架构”的分离,各司其职。

尽管这样比较美好地说,但事实上k8s目前并不能完全取代springcloud,可取的选择是二者共同使用,我们可以根据实际情况将服务的注册发现、负载均衡、配置中心等使用k8s代替,其它方面依然沿用springcloud。

但是就发展而言,k8s相对是一个更好的微服务架构方案,尤其是随着支持k8s相关servermash产品的出现,比如istio,它可以提供诸如服务接口调用、验证授权、流量控制、服务跟踪治理等相关功能,在更大程度上使得替代springcloud成为可能。另外springcloud面向Java的短板也没有迎合微服务的语言无关性,在笔者看来,被k8s取代只是时间问题。

需要说明的是,k8s是基于docker(或者说实现了容器类似标准的产品)的,因此,在学习系列教程之前,还请对docker有一定的了解。(也可以参考前几期的docker入门哦)

我们在下期正式进入kubernetes的实战学习!关注不迷路呦!


推荐阅读

1.原创 | 全网最实在的docker入门教程一

2.原创 | 全网最实在的docker入门教程二

3.原创 | 全网最实在的docker入门教程三

4.程序员的崩溃很简单

5.Spring Boot + Vue 开发网易云,QQ音乐(附源码)!

6.如何设计一个安全的对外接口

原创 | k8s系列教程一:开篇相关推荐

  1. pytorch打印模型参数_Pytorch网络压缩系列教程一:Prune你的模型

    Pytorch网络压缩系列教程一:Prune你的模型 本文由林大佬原创,转载请注明出处,来自腾讯.阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480 深度学习模型取得了前所未 ...

  2. 教你如何开发VR游戏系列教程一:前言

    VR现在发展很快,也被炒的很热.因此,做VR应用开发(主要是游戏,也包含全景播放器等)的同学越来越多.AR学院(www.arvrschool.com)就准备了这么一份教程,给大家提供一些帮助和参考. ...

  3. ClickHouse系列教程一:Debian/Ubuntu 下ClickHouse的安装和使用

    ClickHouse系列教程: ClickHouse系列教程 ClickHouse是一个真正面向列的DBMS.数据按列存储,并在执行数组(向量或列块)期间存储.只要有可能,就会在数组上调度操作,而不是 ...

  4. ASP .NET Core Web MVC系列教程一:创建一个Web应用程序

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 从Visual Studio中选择" 创建新项目". 选 ...

  5. ASP.NET Core Web Razor Pages系列教程一:使用ASP.NET Core 创建一个Razor Pages网络应用程序

    系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...

  6. Android Studio系列教程一:下载与安装

    原文出处:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/ 背景 相信大家对Android Studio已经不陌生 ...

  7. asp.NET自定义服务器控件内部细节系列教程一

    如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...

  8. Laravel系列教程一:安装及环境配置

    免费视频教程地址https://laravist.com/series/laravel-5-basic 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算 ...

  9. python是一种蟒蛇使用的语言_python树莓派系列教程一:初识大蟒蛇 python(python语言环境搭建篇)...

    作者:剑若游龙微信公众号<科学是什么东东>,欢迎关注 作者微信号,欢迎与我交流 网络爬虫,人工智能,机器学习,如何让计算机理解能力更强,如 何让你手中的机器人更人性化,更聪明? 不管是大人 ...

最新文章

  1. Python OpenCV像素操作
  2. 做木匠、开烘焙店、写科幻小说,那些选择转行的开发者们…
  3. JavaScript快速入门-ECMAScript本地对象(RexExp)
  4. 计算机应用基础专业自我鉴定范文毕业生,中专生计算机专业自我鉴定(7页)-原创力文档...
  5. 别人家的孩子!高校博士实现Nature、Science双发!
  6. 神经网络 卷积神经网络_如何愚弄神经网络?
  7. Mongodb简介及基本操作
  8. NFinal 控制器—URL
  9. Exam 70-462 Administering Microsoft SQL Server 2012 Databases 复习帖
  10. face_recognition 安装报错问题解决
  11. Win7 下安装 Sketsa.SVG.Editor v7.0.1
  12. 卡尔曼滤波学习小记 How a Kalman filter works, in pictures
  13. Jumpserver docker部署及踩坑
  14. python判断信用卡号是否合法_三十八、练习、Python判断一个信用卡号是否合理
  15. 微信小程序wxacode.getUnlimited 生成圆形二维码
  16. otn与stn网络_mstp和stn的区别
  17. 轻量级私有云存储企业主要功能探析
  18. invalid method declaration
  19. 测试开发进阶——常用中间件概念——线程与线程池理解
  20. HTML CSS 背景图居中属性background-position

热门文章

  1. Find-Sec-Bugs 漏洞范例
  2. 实时监控Mysql等数据库变化_进行数据同步_了解Debezium_--Debezium工作笔记001
  3. 电脑重装系统-利用PE系统盘安装
  4. Neuraltalk2
  5. css相对位置之两个同级div下一个div相对上一个div的位置
  6. 让人春分日 哈工科教101414.集合求和
  7. IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)
  8. 硬件结构框架_北桥_带宽
  9. 3dmax 建模插件 Rappa Tools 3 笔记
  10. Word2019建立自己的模板