zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在生产 Kubernetes 中 需要考虑的 5 个关键因素

Kubernetes 需要 生产 考虑
2023-09-11 14:15:39 时间

生产准备就绪是一个有条不紊的过程,它需要时间并为您的工作提供可预测的结构和一致性。在整个过程中,您希望让您的团队一起工作并协调平台的业务和技术目标。

虽然每个组织的生产之路都不同,但有一些共同的关键领域需要关注,包括平台本身、资源管理、运营、安全和治理。

平台 Platform

Kubernetes 是平台的核心组件,存储和容器运行时等集成组件或 CI/CD 等系统也至关重要。采用产品思维有助于迭代平台的不同功能, 而不是专注于一次性工作。

无论您是在公共云上使用托管服务还是构建自己的集群,都应该构建平台以实现弹性并从一开始就防止故障。

提高平台弹性的一种方法是制定和实施有效的灾难恢复计划 (DRP)。有效的 DRP 对于能够在发生中断时快速恢复平台并为平台或任何关键任务、应用程序、维护任何服务水平协议 (SLA) 至关重要。

另一个需要考虑的重要事项是正确调整集群的大小。您需要仔细考虑预期的工作负载类型(有状态与无状态、高性能与通用等)、容器数量和对 Kubernetes API Server 的平均每日请求。最好从少量工作节点开始,然后向上或向外扩展。

资源管理

通过将它们放置在单独的命名空间中来划分和管理工作负载。这有很多好处。首先,它使访问控制变得更加容易,因为您可以隔离不同团队、项目或环境的工作负载,并使用基于角色的访问控制 ( RBAC ) 相应地分配权限。其次,您将能够在命名空间级别分配资源,稍后可以使用策略对其进行控制。

在 Kubernetes 中使用默认参数可能会导致未知情况。您要确保对几乎所有内容都使用限制,包括但不限于 API Server 处理的请求数量、工作节点上的 pod 数量以及 pod 内存和 CPU 使用率的上限或下限。默认情况下,单个 pod 没有限制;这意味着 pod 可以消耗它计划运行的任何工作节点上的所有资源。

如果你不能衡量它,就不能改进它。您希望确保监控平台底层基础架构的性能,以便更好地了解您的使用模式,并相应地扩大规模。

运营 operation

在应用程序清单中使用运行状况检查(readiness 和 liveness 探测)以及关联性规则来跨数据中心或可用区传播 pod 可以提高应用程序的整体可靠性和可用性。

建议使用deployments而不是单个 pod 清单。这是为了确保应用程序能够在平台重新启动或故障时幸免于难,并在未来轻松管理应用程序的滚动更新。

运营团队应该有一份运营手册,定义团队中每个成员的角色和职责。这将有助于快速分类和解决问题。

自动化与 Kubernetes 环境密切相关。在分布式系统中,故障几乎是不可避免的,您希望尽快以编程方式添加、删除或替换集群中的节点,并且尽可能少地进行人工干预。

在 Kubernetes 生产环境中,有效的可观察性对于监控和衡量用户体验、应用程序、平台、性能和快速响应事件至关重要。

这可以通过混合使用白盒和黑盒监控、应用程序性能监控 (APM)、集中式日志记录和跟踪来完成。

安全 Security

保护 Kubernetes 应用程序和平台涉及很多事情。由于云原生环境本质上是非常动态的,因此最好从不同的角度来处理此类环境的安全性。

在代码级别,您希望确保最大限度地减少代码库中由于遗留代码或开源库而可能存在的严重和高风险漏洞。静态代码分析可以帮助在开发过程的早期和整个过程中检测到此类漏洞。例如,去年许多 DevOps 团队都在争先恐后,因为可以通过静态分析检测到关键的Log4j漏洞。

对于容器,始终确保通过最小化容器镜像文件大小来减少攻击面。文件越大,越有可能存在漏洞。此外,除非另有需要,否则运行无根容器。这是最重要的。

在 Kubernetes 集群中,确保使用 RBAC 并提供尽可能少的用户权限。这确保了用户和应用程序都不会获得他们不应该拥有的访问权限。此外,限制不同命名空间或 pod 之间的流量,因为这是默认打开的。

您的应用程序、平台和代码可能驻留在私有云、公共云或混合云中。通过遵循云提供商提供的安全最佳实践、遵循最小权限原则并持续监控任何可疑活动来提高安全性非常重要。

治理 Governance

一些行业在特定法规下运营,例如医疗保健和金融服务,并且在涉及 Kubernetes 环境时必须制定、执行和验证某些政策。例如,在传输和飞行中加密所有数据。

这可以通过在治理框架中构建、购买或集成工具来实现。并且随着时间的推移,组织不会违反合规协议。

开放策略代理 (OPA)提供了一个集中的策略引擎来创建、管理和操作策略,并得到大型开源社区的支持。它可以部署在 Kubernetes 集群中,也可以作为使用准入控制器验证 API 请求的单独服务。

可以用称为 Rego的策略语言编写各种各样的策略,然后在 OPA 中使用。例如,可以编写某些镜像管理策略以确保只有具有低风险或中等风险漏洞的镜像才能投入生产。

此外, PolarisTrivy等其他开源工具可以轻松集成到您的 CI/CD 管道中,以确保工作负载配置遵循最佳实践并扫描镜像以查找漏洞。

翻译

5 Key Considerations for Kubernetes in Production

关注

本文首发于微信公众号【进击云原生】,扫左侧码关注,了解更多咨询,更有免费资源供您学习