译者 | 布加迪
策划 | 云昭
Kubernetes是如今最知名最流行的容器编排引擎。Kubernetes之所以成为云原生计算的中心,是由于它是开源的,还有一个快速增长的生态系统。如果我们观察它在过去几年的发展和采用趋势,尤其是在云原生世界方面,就会发现它不仅仅是一种容器编排工具。它已经不再是一种容器编排引擎,现在是下一代云原生生态系统的主要构建模块。
开发人员正在试用Kubernetes,绝不仅仅将其当成容器管理器。本文讨论它在开源社区中几个已确立的企业模式和流行用例。
Kubernetes方面有经验的企业已认识到Kubernetes作为“无服务器的服务器”平台具有的全部潜力。无服务器现在因Kubernetes而被重新定义,而Knative最近由CNCF(Kubernetes的监管组织)推出,将Kubernetes抽象为无服务器计算。Knative的核心由三个模块组成:
1. Build—从源代码构建映像。
2. Serving—在Kubernetes集群上部署功能(映像构建),并映射扩展和路由等。
3. Eventing—用servicing映射事件和消息摄取。
就像面向Kubernetes的kubectl一样,kn是终端上新的命令,用于在Kubernetes上启用函数即服务(FaaS)。它将容器映像作为构建模块,在Kubernetes上处理一切。Kubernetes作为一个无服务器平台在加快其在企业界的采用;然而,同类产品(比如AWS Lambda、Cloud Functions和Azure Functions)仍然依赖供应商锁定(即部署到各自的云上它们才管用)。
Kubernetes解决一些现有的挑战,比如工件大小的限制、法规遵从、数据主权和企业内部的细粒度控制。Kubernetes上的无服务器Knative与传统Kubernetes之间的主要架构差异来自额外的抽象层。作为无服务器的Kubernetes消除了重复的配置和构建任务。

图1
Kubernetes上的无服务(Kubernetes集群概况图)
Knative充当无服务器和事件驱动平台
Knative是Kubernetes生态系统的新成员,它有望颠覆构建基于事件的架构的无服务器选项。“扩展到零”、“从零扩展”和集群内构建等功能使Kubernetes成为一种全面的无服务器平台。
Kubernetes被视为数据科学和机器学习技术堆栈当中的大数据处理和有状态数据服务平台,并被广泛采用。它抽象了底层基础架构,优化了弹性计算的配置,在底层将GPU和CPU结合起来。Kubernetes非常适合机器学习,因为它本身就具备机器学习需要的所有调度和可扩展性。
与传统的数据集群环境相比,容器和Kubernetes组合在构建大数据软件时功能强大且灵活,传统的数据集群环境面临分布式集群管理的复杂性和计算规模开销。Kubernetes利用按需提供的GPU和CPU计算来改善大数据和机器学习处理。Kubernetes可以提供GPU加速计算和网络解决方案,以便在边缘运行机器学习和NLP处理。运行在协处理器上的Kubernetes正成为未来计算的重要部分。其动态资源利用的特性有利于数据科学工作负载,而训练模型或特征工程需求可以非常迅速地增减。

图2
基于Kubernetes的大数据和机器学习集群
用于机器学习处理的按需可扩展协处理器
KubeFlow、Spark、Hadoop、PyTorch和TensorFlow等框架现都在采用容器。有状态MLOps广泛采用容器和Kubernetes来启用多个集群,处理大型训练集和测试集,并存储学到的模型。为了简化数据建模框架的处理,一种选择是Kubeflow,这是一种面向Kubernetes的开源机器学习工具包,可以运行声明式的可配置作业。
Kubeflow对运行在Kubernetes上的复杂的大数据和机器学习管道进行抽象和编排。机器学习管道底层的Kubernetes是MLOps的骨干。它使得数据科学家和机器学习工程师很容易利用混合云(公共云或本地环境)来处理弹性和可扩展性。Kubernetes能够构建一个中立的大数据平台,避免云管理服务被供应商锁定。
Kubernetes与基础架构无关,企业利用它来实现复杂的基于容器的集群联合。Kubernetes有助于将混合或多云环境合并到单一平台中,从而获得明显的好处。
托管服务不是解决所有问题的方案。公共云和私有主权云的便利性之间总是需要兼顾。Kubernetes被认为是这方面的解决之道,因为它支持多云访问,可以跨基于行业标准的API (Kubernetes接口)无缝交付应用程序。它通过将私有云和公共云集成抽象为单一联合平台,有助于企业借助Kubernetes实现法规遵从。
企业利用Kubernetes提供混合和多云集群方面的灵活性,从而避免供应商锁定。当前基于云的架构模式如何采用Kubernetes值得拭目以待。基于云的企业以及开源社区已意识到,Kubernetes不仅仅是一种容器管理工具。现在很显然,Kubernetes是一种完整的平台,可以为在混合云或多云模式上运行的应用程序管理生命周期。
Kubernetes作为平台即服务(PaaS)被广泛采用。然而在早期,Kubernetes的官方文档提到它是容器即服务(CaaS)。最近,人们观察到Kubernetes的采用模式和使用已远远超出了CaaS,因此更新后的文档称Kubernetes是下一代PaaS。
Kubernetes是新时代的PaaS,意味着:

图3
Kubernetes作为新一代PaaS
混合和多云容器联合作为新一代PaaS
大型组织通常不愿意将平台控制权交给AWS Lambda、AWS Fargate或Azure Functions等。Kubernetes已成为一种事实上的选择,它集两者之所长:控制性和本地稳健性,以及来自声明式容器化生态系统的云原生计算弹性、可扩展性和弹性。Kubernetes结合Helm(IaC)、Grafana(遥测仪表板和警报)以及Prometheus(度量指标获取器)等开源工具,使其成为支持DevOps、对SRE友好的企业生态系统的完美组成部分。
数据科学和机器学习企业在加快采用Kubernetes作为大数据处理平台。最近,机器学习和大数据框架正变得容器化,这使得Kubernetes成为底层数据集群和建模生态系统的首选。备受青睐的特性还包括Kubernetes抽象弹性GPU和CPU,以及按需可扩展和状态性。
Knative之类的Kubernetes抽象框架将Kubernetes带到了另一个层面。Kubernetes正在成为无服务器架构的新服务器,而且势头正猛。它正在为AWS Fargate和OpenShift提供开源替代方案。Kubernetes已被赋予了多种新的角色,而不仅仅“只是”一种容器编排工具。
原文链接:https://dzone.com/articles/kubernetes-beyond-container-orchestration
所以我开始关注ruby,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出
给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R
我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
我正在研究使用EventMachine支持的twitter-streamrubygem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@
啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组
在Ruby中有运算符(operator)。在API中,他们没有命名它的名字,只是:Theclassmustdefinetheoperator...Comparableusestoimplementtheconventionalcomparison......theobjectsinthecollectionmustalsoimplementameaningfuloperator...它叫什么名字? 最佳答案 参见上面的@Tony。然而,它也被称为(俚语)“宇宙飞船运算符(operator)”。
电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑
电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,
我正在研究Ruby解释器是如何实现的,并且出现了一个问题,但我还没有得到答案。这就是标题中的那个:因为Class(r_cClass)将super设置为自身(忽略元类,因为实际上super是r_cClass的元类),如果我向Class对象发送一个方法,这将在Class的方法表中查找'类(class)。但是Class的类是Class,所以我不应该最终寻找Class的实例方法吗?但事实并非如此,因为在文档中Class类方法和Class实例方法是分开的。在Ruby的eval.c中的search_method中,我没有发现对Class类有什么特别的检查。任何人都可以阐明这一点吗?