您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    为容器和 Kubernetes 构建运用顺序的7个优秀实际
    时间:2020-03-24 21:14 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    为容器和 Kubernetes 构建运用顺序的7个优秀实际

    当容器和 Kubernetes 变得日益普及时,我们更需求做的是保持清醒,不要被诈骗,误以为应该运用它们来运转任何类型的运用顺序。

    “可以”和“应该”是有很大区别的,这在容器和 Kubernetes 的运用中也是如此:构建一个专门在容器中运转并运用 Kubernetes 对其停止操作的运用顺序(有些人将其称为云原生开发)与将这些容器和编排用于现有的单体运用顺序之间是有区别的。

    关于刚末尾运用容器任务的团队来说,构建专门用于容器和 Kubernetes 的新运用顺序能够是最好的终点。

    Aqua Security 的战略副总裁 Rani Osnat 说:“容器(和编排)是用于构建、部署和运转云原生运用顺序的技术工具,我通常建议那些刚末尾运用容器的人运用一个全新的、复杂未开发的(greenfield)运用顺序作为测试用例。”

    如何开发应用 Kubernetes 在容器中运转的运用顺序 ,我们讨教了几位云原生专家,他们给出了以下七个最佳建议。

    1. 现代化的思想方式

    假设明天我们要建造新房子,那么采用的作风和办法,和 50 年前的一定不一样。同理,如今构建软件也需求尝试新的工具和办法。

    SADA 首席技术官(CTO)Miles Ward 说过:“假设你要构建运用顺序,请以现代的方式构建它!” 。同时,Ward 指出 微效劳 和 12 要素(12-factor)办法论 是现代运用顺序开发的主要办法。

    Ward 指出,虽然微效劳和容器可以很好地协同任务,但实践上,在某些状况下,没有必要这样做。异样,微效劳也常常会和 Kubernetes 放在一同,但这也不是相对的硬性要求,单体(monolithic)办法也是可以任务的,只要它可以水平扩展就行。12-factor 办法论也是如此。”

    假设你是从头末尾构建运用顺序,请优先思索微效劳的办法。

    Osnat 建议:“为了最大限制地应用容器,可以把我们的运用顺序设计成微效劳运用顺序,这样,即使是刷新单个容器,它也可以正常运转。同时,还应该对其停止结构化,以便容器镜像可以表示独立发布的单元,从而完成高效的 CI/CD。”

    “现代化”开发可以经过多种方式来定义。假设要为容器和 Kubernetes 构建运用顺序,那么就要做出适宜它们的技术选型。

    将容器镜像定义为可以独立伸缩的逻辑单元:将数据库、日志记载、监控、负载平衡和用户会话组件辨别设置为可独立完成的容器或容器组。

    思索云原生 API:“Kubernetes 具有弱小的 API 扩展机制,经过与这些工具集成,我们可以即时应用生态系统中现有的工具,比如命令行适用工具、身份验证等等。

    “大少数现代言语和框架都对容器十分友好,” Harness 的 DevOps 倡导者 Ravi Lachhman 说。“假设追溯到几年前,像 Java 这样的运转时都很难遵守容器边界,并且可怕的内存泄露“杀手”可以恣意运转。而如今,由于容器和编排系统(尤其是 Kubernetes)的普及,言语和框架曾经开展成为相顺应的新范式了。”

    2. CI/CD 和自动化

    自动化是容器编排的一个关键特征。假设我们构建了一个在 Kubernetes 上的容器中的运用顺序,那么完成自动化是必要的,否则,操作能够会不堪重负。

    Brillio 的首席架构师 Chander Damodaran 表示:“假设在一末尾构建自动化水平低的运用顺序和效劳,那么随着效劳和组件的激增,自动化能够会成为一个瓶颈。”

    精心设计的 CI/CD 管道可以将自动化引入到开发和部署进程的各个阶段。

    “运用任何一个新的平台都需求停止少量的重复实验和试错。虽然运用 Kubernetes 有很多便利性,但是也会有风险。” Harness 的 Lachhman 说, “拥有一个鲁棒性强的继续交付管道可以确保测试、安全性、变更管理策略等都是遵照建信标准的,从而确保运用顺序的有效运转。”

    3. 容器镜像尽能够保持轻量

    为容器和 Kubernetes 开发运用顺序的另一个关键准绳是:为了功用、安全性及其他缘由,容器镜像越小越好。

    确保删除掉运用顺序不需求的一切其他软件包,包括 shell 适用顺序。

    ThoughtWorks CTO 办公室的首席技术专家 Ken Mugrage 说:“镜像中通常会包含一些运用顺序运转不需求的顺序包,删除这些软件包,只保留我们需求的东西,不只可以使得镜像更小,还可以增加安全性成绩的攻击面。”

    CloudBolt 产品营销总监 Nilesh Deo 也赞同了这一观念:“镜像越小,加载速度就越快,运用顺序也更快。”

    4. 不要自觉地轻信镜像

    假设我们重用或重新调整现有的组件就可以到达目的,那么就无需从头末尾构建。异样的原理也适用于容器,但是从安全的角度来看,也不能对容器镜像自觉信任。

    有太多的人从曾经安装了某种运用顺序堆栈的存储库中选择镜像。

    “有太多人从曾经安装了某种运用顺序堆栈的存储库中选择镜像,” Mugrage 说。“通常状况下,这些镜像的质量不佳,而且往往还会存在不容无视的安全性风险。我们在运用任何镜像的时分,即使是我们本人存储库中的镜像,在每次运转时都应在部署管道中对其停止扫描,以反省破绽和合规性。”

    5. 一末尾就应方案可察看性、遥测和监控

    Kubernetes 的自愈才能是其具有吸引力的缘由之一,但同时 Kubernetes 也强调了使运用顺序和环境具有适当可见性的必要性。

    “缺点”本质上是容器和微效劳的一部分,当然这里的指的是缺点管理,而不是缺点规避。这也是表现可察看性、遥测和监控的关键部分。

    Sentry.io 的软件工程师 Andrei Zbikowski 说:“ Kubernetes 具有内置的弹性机制,这就需求将片面监控作为最佳实际。它的自愈功用可以重新启动发作缺点的容器,或在不满足某些安康参数的状况下交流并终止其他容器。虽然这一定水平上保证了运用顺序的正常启动和运转,但是也掩盖了一些成绩。”

    (责任编辑:admin)