加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

生产环境 VS 开发环境,关于Kubernetes的四大认识误区

发布时间:2018-12-06 05:18:27 所属栏目:评测 来源:吴世曦翻译
导读:副标题#e# 【编者的话】当容器和Kubernetes的IT管理团队把本地变更部署在生产环境的时候,往往面对很多要学习的东西。 最近我们澄清了一些大家在进行Kubernetes实验的时候所见到的常见的误解。其中最大的一个误解就是:在生产环境中运行Kubernetes和开发测
副标题[/!--empirenews.page--]

【编者的话】当容器和Kubernetes的IT管理团队把本地变更部署在生产环境的时候,往往面对很多要学习的东西。

最近我们澄清了一些大家在进行Kubernetes实验的时候所见到的常见的误解。其中最大的一个误解就是:在生产环境中运行Kubernetes和开发测试环境并无两样。

答案:是不一样的。

Avi Network公司的联合创始人兼首席技术官Ranga Rajagopalan认为:“对于Kubernetes,容器和微服务来说,实验环境和生产环境有巨大的不同。简单的运行和安全、可靠的运行是不一样的”。

生产环境 VS 开发环境,关于Kubernetes的四大认识误区

Ranga Rajagopalan的意见中有一个重要的论点:上述问题不仅仅只是存在于Kubernetes,同样也存在于容器和微服务。部署容器相对简单;而在生产环境运维和缩放容器(包括容器化的微服务)是问题复杂的原因。

容器和容器的编排工具通常都是成套出现的。New Stack公司之前进行了一项调查,调查发现当组织为了解决运维所面对的挑战,去寻找更强大的技术的时候,容器反过来推动了Kubernetes的普及。虽然也有其他的工具,Kubernetes还是快速成为了编排工具和选择的代名词。像Rajagopalan说的那样,在沙箱里运行Kubernetes和在生产环境中运行Kubernetes有巨大的不同。

通常IT专业人士和团队运维小规模的Kubernetes环境,当这个环境转向生产环境部署的时候,这些人将有很多东西需要面对和学习。“你肯定想在上生产环境之前扫清这些常见的误解,这里有IT领导者和团队需要了解的知识”。

误区1:在开发测试环境运行Kubernetes能帮你全面了解运维的需求

现实:在开发测试环境运行Kubernetes能帮你走一些捷径,你可以不必面对生产环境所带来的运营负载。

Wei Lien Dang, StackRox的产品副总裁认为“开发测试环境和生产环境的最大不同源自于运维和安全,在运维测试环境你根本不用在乎集群宕机。”

Portworx的联合创始人兼CEO Murli Thirumale将开发测试环境和生产环境的不同与敏捷和可靠,高性能的敏捷做了类比。

“开发团队的目标是在开发和测试新应用和代码的时候实现应用的敏捷;而同时运维人员的目标是应用和数据的可靠性,可伸缩性,安全性和性能。后者需要一个强大的,企业级的,经过测试和验证的平台。”

自动化已经成为了在生产环境中采用Kubernetes(或者通俗所说的容器)的迫切需求。

Coda Global的架构师Ranjan Bhagitrathan认为“生产集群必须通过自动化部署。生产集群一定要具备可复制性,从而实现整体生产环境的一致性,同时可复制性也对灾难恢复有所帮助”。

Bhagitrathan同时也认为版本控制对生产环境运维至关重要,“对所有事情进行版本控制,比如服务部署的配置文件,策略等等,如果可能也包括实现基础架构即代码的代码命令。这能确保你的环境是相同的。同时也要确保容器镜像有版本控制,不要只是用“最新镜像”这样的名字来个镜像打标签,这样很容易引起混乱”。

误区2:你已经得到了可靠性和安全性

现实:如果你只在非生产环境试验过Kubernetes。你可能没获得可靠性和安全性,或者目前没有。

好消息是你最终会做到,因为上生产环境之前,需要做规划和架构设计。

AquaSecurity的联合创始人兼 CTO Amir Jerbi认为“很显然,在生产环境,性能,可伸缩性,高可用性和安全性方面所面对的挑战更严峻。所以在架构阶段规划生产环境需求,并且把安全,伸缩控制,Helm charts集成在Kubernetes部署的定义中是极为重要的”。

Dang分享了一个测试开发环境如何导致过度自信的例子:

“在测试开发环境中开放所有的网络端口是非常不错的,很可能所有的服务都能互相连接。Kubernetes默认设置所有网络连接开放。但这不是一个成熟生产环境所应有的设置,一旦步入生产阶段,停机和大规模攻击会给业务带来风险“。

“当工作转移到容器和微服务的时候,构建高可靠,高可用的系统是非常有价值的工作。编排工具帮你实现这部分工作,但这并不举手可得。安全性也是一样。”

“我们要做很多事情来减少针对Kubernetes的攻击,通过加强网络策略来实施最低权限模型,并且限制服务只和需要的服务连接是非常关键的。”

在生产环境中,容器镜像的安全漏洞可以很快变的很严重,威胁可能是受限的或者根本不在本地。(whereas the threat may be limited or non-existent locally.)

Bhagirathan说,“要注意你的容器镜像采用的基础镜像是什么,尽可能用受信任的官方镜像或者自己动手制作。用未知的镜像也许可以帮你很快的跑起服务,但也带来了安全问题。比如,你肯定不想你的Kubernetes系统给别人挖比特币做贡献。”

红帽公司的安全策略师Kirsten Newcomer鼓励人们通过10个层次来考虑容器安全——包括容器堆栈层(比如容器主机和注册),容器生命周期(API管理)。有关10层的细节信息以及如何应用在Kubernetes这样的容器编排工具,请参阅Newcomer的播客或者白皮书:https://www.redhat.com/en/enga ... yaAAA。

误区3:编排工具让缩放变得易如反掌

事实:虽然很多软件专业人士都认为Kubernetes这样的容器编排引擎对于容器扩展性来说是必不可少的,但是认为编排工具能立即让缩放变得简单是错误的,特别是当你第一次在生产环境中使用它时。

Sumo Logic公司的高级技术产品经理Frank Reno认为“自动缩放改变了一切,数据越来越大,你的监控系统需要根据数据量来扩展。在生产环境运行之前,Kubernetes的所有组件都不能被很好的了解。毕竟确保Kubernetes系统的健康运行,API服务器和其他控制组件能根据需求缩放而不是自动的。”

开发和测试环境让事情变得过于简单,而真正的环境需要这样,或那样的需求,并且需要一直维护。

“在开发测试环境可以非常简单跳过一些基础设置,比如确保你能用到特定的资源,并且限制请求,”Reno说,,“如果在生产环境不这样设置,你的好日子就算到头了。”

向上或向下扩展群集是一个很好的例子,当你在本地进行实验时,它可能看起来很简单,但在生产环境中缩放变得明显更具挑战性。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读