稳定、可扩展、模块化、简化部署过程、版本控制……一文看懂 Kubernetes 到底如何运用!...

来源 | Daniele Fontani

编译 | 火火酱,责编 | Carol

出品 | CSDN云计算(ID:CSDNcloud)

说实话,我是个Kubernetes爱好者。Kubernetes是软件开发的重要一步。当我遇到它时,我就想:“这就是将容器融入生产的方式”。我没有任何犹豫就投入了它的怀抱。有成千上万的架构师像我一样,已经深深爱上这项技术。

让我们来看看Kubernetes是怎么解决这个问题的:如何将应用程序部署到云中,从而支持我们的基础架构以满足云转型需求。

记住你的目标

在云转型时代,所有公司都有以下目标:

  • 尽快迁移到云(云迁移)。

  • 减少系统管理员成本、基础架构成本、员工时间(降低成本)。

  • 减少完成项目所需的时间(上市时间)。

  • 具备性能良好(质量提高)的可靠系统。

有了这些目标,我们才可以登陆云端,然后问自己:“好了,那接下来要做什么?”

人们,尤其是那些第一次接触云的人,很容易迷失在各种各样的解决方案中。更糟的是,他们奉承只许成功,不许失败的理念。这不是在开玩笑,一个项目必须每天都向前运作,否则第二天它将会面对双倍的功能要求和集成需求。

这就是云转型困难的原因——就像在赛马中,你必须押注正确的那匹马,绝不能输。在接下来的步骤中,我们将学习为什么Kubernetes是那匹正确的马,以及为什么每个人都应该下注。

为什么要使用容器?

在问为什么要使用Kubernetes之前,我们必须先想想我们为什么需要使用容器。容器的诞生是软件开发中的一场重大革命,因为它将生产带入了本地环境。从此,无需再担心Linux或Windows系统的兼容性。有了容器,所有问题都可以在任何工作站中轻松发现。

此外,每个环境都是可移植的,不需要额外的工作。开发人员有打包应用程序的能力,这很好,因为他们能了解应用程序应如何工作。容器在DevOps方面也非常赞,因为系统部署都只处理一样东西:容器

另外,所有构建过程都可以在开发端的Dockerfile文件中进行,这意味着你只需要使用一种方式进行构建,在本地开发和持续集成中也是如此。

容器意味着需要维护的东西更少、环境之间没有差异、矛盾摩擦也更少。

容器镜像在创建后被推送到注册表中,从这里,可以拉取镜像并将其部署到任何地方——你的桌面、虚拟机(本地或云中)或无服务器的解决方案(例如Heroku)。与虚拟机相比,容器的真正优势在于它虚拟化了操作系统,而不是资源。这意味着我们可以以一种更轻松、更简便、更经济的方式来托管应用程序。

为什么选择Kubernetes?

刚刚,我们解释了为什么每个人都要使用容器,但没有解释为什么我们需要Kubernetes。既然使用容器的必要性成为了既定的事实,那么新的问题出现了,该如何管理容器?怎样才能更好地协调这些容器?这些问题的答案就是Kubernetes。

借助Kubernetes,你只需要将镜像推送到docker存储库然后等待部署就可以了。所有部署工作都由Kubernetes进行管理,因此不必担心基础架构的问题。

Kubernetes是容器编排方案中的佼佼者。它是开源的,衍生于Google的经验。其基础架构使其能对容器进行编排并与老式系统集成。因此,你可以将其安装在本地或云中,甚至可以安装在混合云解决方案中。

因此,选择Kubernetes的原因是它是一种稳定、可靠、易于使用的解决方案。简而言之,这就是部署容器的最佳方法。

Kubernetes是否是无服务器框架?

Kubernetes是否就是无服务器框架?Kubernetes和无服务器框架比较起来是不同的。无服务器框架更像是一种理念,而Kubernetes更像是一种工具。让我们先回到最初的目标上来。之前提到,我们需要减少对操作系统的依赖和维护——这就是无服务器框架。

因此,问题在于Kubernetes是否可以实现这一目标?简单来讲:可以。详细描述的话就是:

严格来说,无服务器框架是在不用询问是谁在运行此代码的情况下进行部署,即使Kubernetes抽象隐藏了最复杂的部分,你也必须要了解一些关于服务器的事情。例如,你仍然要依赖每个容器的操作系统。内部运行的特定版本的Kubernetes是存在依赖性的。因此从理论上讲,Kubernetes并非没有无服务器框架。

但不管怎么说,让我们先看几个无服务器框架的解决方案吧。

Heroku依赖于容器。你也可以向其部署一个容器。大多数lambda函数在内部都有容器。

我们之所以不能将Kubernetes的云版本视为无服务器框架,是因为:它以容器为基础并且依赖于操作系统。可是,我们却认为具有相同功能的Heroku或lambda服务是无服务器框架的。

这就是为什么我认为Kubernetes是一种无服务器框架解决方案(即使严格意义上来讲并非如此)。现实世界不是非黑即白的,Kubernetes云版本提供给我的资源、抽象水平和相对于操作系统的独立性已经足以将其视为无服务器框架了。

我不想太较真。无论使用何种标签(无论是否使用服务器),Kubernetes都是一种能够轻松实现云计算、降低系统管理员成本、降低基础架构成本和范围并提高质量的好方法。因此,不必太在意标签,只要选择对自己有帮助就好。

Kubernetes的优势

Kubernetes是一个可以安全退出传统的虚拟机并进入云计算的好平台。它为我们带来活力、降低了系统管理员成本,并且将服务质量推到了其他任何方式都难以到达的水平。Kubernetes本身的高级配置可以解决许多传统问题,例如网络和数据保护。

以下是此解决方案能带来的一系列好处:

  • 可扩展性:你只需要部署一个容器。然后,就可以毫不费力地设置扩展策略。唯一需要担心的是信用卡上的钱够不够。

  • 透明度:每个容器都做一件事。容器之间的所有关系都会被映射到配置文件中,绝不会错过任何事情或隐藏某些行为。

  • 节省时间:过程非常简单,任何步骤都易于复制。

  • 版本控制:根据设计,每个部署都是版本化的。你可以轻松地将基础结构映射到可以在Git上进行版本控制的源文件中。

除此之外,Kubernetes简化了所有DevOps的工作。因为责任与透明度有明确的分离,所以开发人员和运营团队之间的摩擦会减少。

还有一些其他的小优势:

  • 水平自动扩缩容:Kubernetes可以自动扩展,向集群中添加节点并调整可用的物理资源。此外,它还可以扩展逻辑资源,从而增加给定服务的Pod数量。

  • 智能更新:每次更新容器镜像时,处处都都体现着细心和爱。只有在新的pod出现时,旧pod才会被销毁,这实现了零停机时间部署。

  • 本地或云:除了云还有其他选项吗?有。我一直都更爱用完整的云解决方案,但是如果您需要本地部署,也不会有任何问题。

  • 供应商锁定:公有云上的Kubernetes是一样的,如果你对供应商不满意,可以轻松地换一家。

  • 无需后续学习:单击即可部署任意可容器化软件。这意味着你的开发人员不必学习新的知识。

总结

Kubernetes有很强的灵活性,并且你可以使用云方案轻松实现管理。当我发现它的时候,我就把它看作一种能够减少工作量和责任的有效且安全的解决方案。它具备传统基础架构的所有优点,无需重写应用程序即可轻松完成NoOps流程设置。

与其他许多闪光的解决方案(如无服务器框架)相比,Kubernetes似乎更加具体。无服务器框架很好,但是在复杂的场景中,使用起来并不容易。从逻辑上讲,要采用lambdas这样的边缘技术,就需要经历巨大的思想转变。众所周知,要强迫开发者们改变想法并不容易。

如今,大家都希望能够减少系统管理员方面的工作量、简化部署过程、让基础架构解决所有难题,而Kubernetes做到了。

如果我明天必须设计一个架构,尤其是针对企业的解决方案,那么我会优先选择容器和Kubernetes。或许使用云端Kubernetes来降低系统管理员的成本,或许使用基于Git上托管的配置文件的DevOps管道。

该解决方案很少依赖于操作系统,很少依赖于供应商,所有基础架构都依赖于代码。

有人可以说这不是完全NoOps,也不是完全无服务器。但它是稳定的、模块化的、可扩展的、并且满足最重要的设计目标。那么,为什么不使用Kubernetes呢?

我们能做得更好吗?当然!我们可以尽力减少压力吗?当然!我们永远都能做得更好,永远都能拥有更多的可能性。

但最终,Kubernetes是一个很好的折中方案。在大多数情况下,它能为成功提供保障。

原文:https://medium.com/better-programming/why-kubernetes-bbb7d66fccf5

本文为 CSDN 云计算翻译,转载请经授权。

CSDNx巨杉大学联合认证学习,免费开放!“分布式数据库集训营”帮助您从零开始学习分布式数据库、分布式架构知识,现在加入活动,完成课程还将专属礼品。快来参加吧~

了解详情:http://www.sequoiadb.com/cn/university-camp

推荐阅读:一文读懂Docker及其对系统管理员的重要性
别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!!
25 岁的老 Delphi,还值得程序员入手吗?
CNN vs RNN vs ANN——3种神经网络分析模型,你pick谁?
“不让一块芯片流向华为”?
男性玩家占78.8%、90后玩家占近50%、最多人选择中国风链游……《2019链游玩家需求调研报告》重磅发布!
真香,朕在看了!点击“阅读原文”,即可报名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提升不止一点点,Dubbo 3.0 预览版详细解读

Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。更多用户信息,可以访问Dubbo GitHub,issue#1012: Wanted: whos usi…

Jenkins Tutorial

什么是Jenkins Jenkins是一个自动化平台,它允许你使用pipelines去部署应用。它也可以自动化其他任务。 BUILDTESTDEPLOYMENT Jenkins 架构 首先,你拥有一个Master Server,它控制pipelines和安排Build到你的Agent上; 其次&…

阿里云首次在ASPLOS'19发布重磅论文:揭秘帮助ECS快速迭代的热升级技术

第24届ACM编程语言和操作系统(ASPLOS19),于2019年4月13日至17日,在普罗维登斯召开,阿里云高级技术专家郑晓代表团队在会上发表了技术报告。 论文主题为《Fast and Scalable VMM Live Upgrade in Large Cloud Infrastr…

痛!做C#半年,挣的不如做AI1个月?”看到第二句泪目……

前段时间在网上发现一个热门话题:“做开发一年,在北京月薪不到1万,有点迷茫。” 其中,这个回答我永远忘不了:来源:库库的派派知乎回答,已取得授权在这短短的一条信息里,小编佩服不…

联想电脑u盘安装Linux,如何使用u盘安装linux系统

ps: 请注意,硬盘不是软盘7. 选择您的U盘作为硬盘驱动器,然后写入usb hdd 8. 点击[写]三,安装系统1. 将U盘插入计算机2. 启动计算机并按住[F2]进入BIOS以修改第一个启动项3. 选择U盘后,跳转到以下界面4. 按键盘键进入第二个“测试…

源码|详解分布式事务之 Seata-Client 原理及流程

前言 在分布式系统中,分布式事务是一个必须要解决的问题,目前使用较多的是最终一致性方案。自年初阿里开源了Fescar(四月初更名为Seata)后,该项目受到了极大的关注,目前已接近 8000 Star。Seata 以高性能和…

SonarQube中配置c语言/c++语言代码规则插件

文章目录一、下载安装重新启动1. 下载文件2.安装3. 重新启动SonarQube4. SonarQube管控台验证二、SonarQube管控台配置2.1. 创建配置模板2.2. 添加规则2.3. 查看配置模板规则列表2.4. 修改默认语言规则应用2.5. C配置流程同上我是java出身,因为特殊需要,要用sonarqube做一套c代…

从虚拟化前端Bug学习分析Kernel Dump

前言 也许大家都知道,分析 Kernel Dump 有个常用的工具叫 Crash,在我刚开始学习分析 Kernel Dump 的时候,总是花大量的时间折腾这个工具的用法,却总是记不住这个工具的功能。后来有一次在参加某次内部分享的时候,有位…

Apache Shiro RememberMe 1.2.4 反序列化过程命令执行漏洞【原理扫描】

文章目录一、分析定位1. 漏洞描述2. 项目引发漏洞简述二、 若依系统2.1. 版本升级2.2. 配置文件2.3. 推荐做法2.4. 栗子2.5. 项目场景三、Gus系统3.1. shiro版本升级3.2. 调用重新生成3.3. 生成工具类shiro漏洞补充:一、分析定位 1. 漏洞描述 目前厂商已经发布了新…

Linux系统json文件打中文,如何在 Linux 终端上漂亮地打印 JSON 文件

JSON 文件非常棒,因为它们以人类可读的格式存储数据集合。然而,如果 JSON 文件被最小化过,那么阅读 JSON 文件可能会很痛苦。• 来源:linux.cn • 作者:Abhishek Prakash • 译者:geekpi •(本文字数&#…

超级干货!31 条2020 年最新版 ZooKeeper面试题,先收藏再看!| 博文精选

作者| ThinkWon责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)金三银四,虽然受疫情影响,大多数企业还未正式复工,但没有条件,创造条件也要上,许多企业已经开始物色合适的人才了&#…

Node.js 应用故障排查手册 —— 雪崩型内存泄漏问题

楔子 实践篇一中我们也看到了一个比较典型的由于开发者不当使用第三方库,而且在配置信息中携带了三方库本身使用不到的信息,导致了内存泄漏的案例,实际上类似这种相对缓慢的 Node.js 应用内存泄漏问题我们总是可以在合适的机会抓取堆快照进行…

检测到远端X服务正在运行中

文章目录一、 漏洞详情二、 解决方案2.1. 方案1(推荐使用)2.2. 方案2一、 漏洞详情 二、 解决方案 2.1. 方案1(推荐使用) 既然漏洞是6000端口导致的,首先要分析linux6000端口是谁在用呢、又和什么程序有关?如果没有用直接关掉6000端口即可,…

Kubernetes从懵圈到熟练:读懂这一篇,集群节点不下线

排查完全陌生的问题,完全不熟悉的系统组件,是售后工程师的一大工作乐趣,当然也是挑战。今天借这篇文章,跟大家分析一例这样的问题。排查过程中,需要理解一些自己完全陌生的组件,比如systemd和dbus。但是排查…

面试还搞不懂Redis,快看看这40道面试题!| 博文精选

作者| 程序员追风责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)近年来,微服务变得越来越热门,越来越多的应用部署在分布式环境中。常用的分布式实现方式之一就有 Redis。对于想要年后换东家的程序员来说,如…

阿里新一代分布式任务调度平台Schedulerx2.0破土而出

1. 产品简介 Schedulerx2.0是阿里中间件自研的基于Akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能。使用Schedulerx2.0,您可以在控制台配置管理您的定时任务,查询历史执行记录,查看运行日志。借助Sch…

阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?

轻松筹首创了“大病救助”模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题。而在轻松筹这样全球5.5亿用户信赖的大病筹款平台的背后,是日益增长的各种数据。面对这样数据量所造成的巨大挑战,阿里…

彻彻底底给你讲明白啥是SpringMvc异步处理

来源 | 编程新说责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)生活在这个世界上,我们必须承认任何事物都是运动变化着的,没有什么东西是一成不变的。不仅因为这句话是出自马克思主义哲学的唯物辩证法,而且事…

选择阿里云数据库HBase版十大理由

根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场。 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大数据技术的兴起和发展,从2010年…

酷睿i7cpu适合的linux,CPU性能篇 - Core i7-4770K Linux之旅:有喜有忧_Linux新闻_Linux公社-Linux系统门户网站...

CPU性能篇——Rodinia是学术界经常使用的科学测试工具。OpenMP LavaMD负载中,4770K相比3770K快了12%,8350表现也可以。OpenMP Leukocyte负载里,4770K对比3770K的优势依然有10%,但是8350大亮了,竟…