什么时候可以使用管理 Kubernetes 的工具?
2023-5-1 09:1:14 Author: Docker中文社区(查看原文) 阅读量:13 收藏

来源:VMware中国研发中心

本文作者:Carol Pereira,VMware Tanzu 产品线营销经理。

团队预计 Kubernetes 集群数量将增加。
这一点从我们最新的 Kubernetes 状态调查中报告的集群实施的超级增长以及我们在 VMware Explore 2022 中直接听到的客户反馈中可以明显地看出。在这些对话中,许多人解释说,尽管他们尚在容器化旅程的早期阶段,但预计环境在未来一两年内将成为一个大规模的多集群的群体。
因此,如果您也处于同样的位置,您是否考虑过使用 Kubernetes 管理工具?

如果您是该场景下的系统管理员或平台工程师,您的日常工作可能是这样的:

  • 您使用工单从内部团队触发基础设施请求,并手动或通过脚本添加各种工具。

  • 您有一些大型集群,并使用名称空间(namespace)来隔离开发、测试或生产的工作负载,尽管它没有提供您的应用程序所预期的安全隔离或资源控制。

  • 您手动管理多个云中的集群,因此需要访问多个屏幕和集群控制台才能分配一个角色绑定(role binding)。如果您需要更新该访问权限,则需要为每个集群重复此过程。

  • 您没有一致的流程来备份您的集群。每个云都不同,一切都很手动。您尚未在所有环境中测试从备份恢复。

  • 您没有一个良好的策略来自动配置 Kubernetes 集群,您的过程很费力且容易出错。

为了创建一致性并改善其中的一些任务,您的组织可能有一个平台工程团队,开始将几个开源工具组合在一起。这最终或能铺出一条开发团队所期望的、通往生产的一致的道路,但关键在于定义这是否是您的团队和组织值得承担的任务。

1

DIY (do-it-yourself)的优点和缺点

我们看到很多公司开始走DIY路线来构建平台并利用开源软件,因为有很多好处:
成本 - 使用免费的开源软件是一种经济实惠的解决方案,尤其适用于小型企业或无法承担昂贵商业软件的低预算组织。
定制化 - 平台可以根据您的具体需求和喜好进行定制,如果您需要具有特定流程或工作流程的高度定制解决方案,则非常有用。

控制 - 自己做事时,您可以完全控制平台,如果您有特定要求,而现成解决方案无法满足,这是至关重要的。

然而,还有相关的缺点会影响组织走向市场的时间和挫败其成功:
压力 - 构建DIY平台是耗时的,需要大量的努力,这可能意味着在集成不同工具时自己处理错误和试错。
技能 - 对于复杂的软件,您需要一定水平的技术知识才能有效地使用它。如果您内部没有这种专业知识,雇用会很昂贵。此外,如果平台的内部工作机制没有很好地记录,您可能会变得依赖于一个人或系统。
支持 - 开源软件通常没有商业软件那样的支持水平。这可能使得及时获得所需的帮助更加困难,甚至有时是不可能的。
团队必须愿意付出努力来定义需要哪些工具和开源项目,以减轻开发团队的负担。这通常是一个非常复杂和漫长的过程,因为每个平台组件的构建都有几个选择。此外,随着云原生生态系统的不断发展,保持对这些项目的最新了解是一项巨大的任务,更不用说个人对某个工具或平台的偏好了。
VMware前高级工程师Mauricio Salatino在一篇博客中提到了基于Kubernetes构建平台的挑战,从内部开发环境(IDE)开始,直到转向生产的路径,其中还包括结合一定抽象的自助式的基础设施操作方式。本博客将仅关注到生产路径,假设组织正在增加其Kubernetes集群数量,面临多云的复杂性,并努力确保安全性嵌入到其平台中。

2

通往生产的路径:我怎样才能达到目的?

正如我们之前提到的,Kubernetes管理中有许多组成部分,许多工具和决策必须共同构建一个全面的平台,以支持开发人员以简化、一致和安全的方式进入生产环境。这些组成部分必须包括以下内容:

身份和访问管理

谁有权访问什么,以及他们查看或创建资源的权限是什么?您能否将您的环境连接到集中的身份管理解决方案?您了解 Pinniped 吗?

管理环境和云提供商集成

业务将在哪里运行?您需要在不同团队和应用程序之间进行多大程度的隔离?您想为各团队启用按需请求环境吗?您将如何管理集群生命周期的运维?

策略管理

您将如何防止“吵闹的邻居”问题?您将如何控制可能部署在您的集群上的容器镜像?您知道 Open Policy Agent(OPA)Gatekeeper 吗?您是否知道Pod Security Policies(PSP)将在Kubernetes v1.25中被删除?

持续部署

当应用程序准备就绪时,您将如何部署新版本?您想实施不同的发布策略(例如蓝/绿、功能标志、金丝雀发布、A/B测试等)吗?您想实施 GitOps 吗?您是否了解 Argo CD 或 Flux CD?

基础设施即代码

您将如何促进在不同环境中的集群的一致性供应和管理?如何更轻松地跟踪更改并在需要时回滚?您了解 Terraform 吗?

安全性

您是否需要在基础架构层启用加密和传输层安全性(TLS)?这种需求适用于所有环境吗?您允许在您的环境中运行特权容器吗?

备份

您如何防止故障或人为错误?您如何确保数据受到保护并可恢复?您能轻松恢复或将工作负载移动到不同的集群吗?您了解 Velero 吗?

当您的组织了解这些要求清单以及团队的需求时,您可以在DIY方法和与供应商合作提供平台之间做出选择,以解决这些挑战中的一些问题。

3

投资Kubernetes管理工具的正确时机

在决定是否要投资于 Kubernetes 管理工具时,有一些关键因素需要考虑:
规模 - 如果您正在运行一个生产级别的 Kubernetes 服务,管理工具可以帮助您进行部署、扩展和监控。
复杂性 - 如果您的环境非常复杂,有许多不同的组件和微服务,管理工具可以帮助您进行集群配置、管理、升级和回滚。
团队规模 - 如果您有一个庞大的工程师团队正在处理 Kubernetes 集群,管理工具可以帮助您进行协作、访问控制和审计。相反,如果您的团队很小,需要高效工作,能够创建一次并多次应用非常有价值。
最终,投资于这样一个工具的合适时间将取决于您的具体需求。但有一件事是确定的,那就是VMware Tanzu团队和Tanzu Mission Control服务可以帮助您升级日常工作:
  • 您可以向开发团队提供预构建的集群、命名空间或工作区,并提供所需的应用程序或工具的所需版本。

  • 您可以轻松地在本地或云端部署中启动新的集群,甚至可以在单个部署环境中启动多个集群,并具有支持应用程序所需的安全隔离和资源控制的灵活性。

  • 您将多个集群连接到您的管理中心,并可以轻松应用身份验证和访问管理。您还可以为一组集群应用安全性、网络和配额策略,这些集群将继承相同的配置。

  • 您可以自动化备份和恢复流程,并可以在任何集群之间移动应用程序,并在任何云端或本地数据中心运行。

  • 您可以在单个可重用的YAML文件中管理集群配置,并将其应用于集群组,以便所有集群继承相同的配置。

通过这样的升级,您将有更多时间专注于为最终客户提供真正的价值。在经济形势不好的时候,您的时间更加宝贵,必须专注于核心业务。
我们的客户越来越清楚地意识到这一点,他们表示他们现在愿意为关键的 Kubernetes 工具提供的服务和支持付费,例如数据安全、集群生命周期管理、平台监控以及平台自动化,以获得一种可以为他们的运维引入一致性和敏捷性的平台体验。
推荐阅读 点击标题可跳转

《Docker是什么?》

《Kubernetes是什么?》

《Kubernetes和Docker到底有啥关系?》

《教你如何快捷的查询选择网络仓库镜像tag》

《Docker镜像进阶:了解其背后的技术原理》

《教你如何修改运行中的容器端口映射》

《k8s学习笔记:介绍&上手》

《k8s学习笔记:缩扩容&更新》

《Docker 基础用法和命令帮助》

《在K8S上搭建Redis集群》

《灰度部署、滚动部署、蓝绿部署》

《PM2实践指南》

《Docker垃圾清理》

《Kubernetes(k8s)底层网络原理刨析》

《容器环境下Node.js的内存管理》

《MySQL 快速创建千万级测试数据》

《Linux 与 Unix 到底有什么不同?》

《浅谈几种常见 RAID 的异同》

《Git 笔记-程序员都要掌握的 Git》

《老司机必须懂的MySQL规范》

《Docker中Image、Container与Volume的迁移》

《漫画|如何用Kubernetes搞定CICD》

《写给前端的Docker实战教程》

《Linux 操作系统知识地图2.0,我看行》

《16个概念带你入门 Kubernetes》

《程序员因接外包坐牢456天,长文叙述心酸真实经历》

《IT 行业老鸟,有话对你说》

《HTTPS 为什么是安全的?说一下他的底层实现原理?


免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!



文章来源: http://mp.weixin.qq.com/s?__biz=MzI1NzI5NDM4Mw==&mid=2247495027&idx=1&sn=3634925259aceb42ab532f982ca7c8b7&chksm=ea1b0433dd6c8d252063e05b4f8265c848bd44a02c9943f4b83d29f6c4095873ff17d6e38cde#rd
如有侵权请联系:admin#unsafe.sh