研究集群和应用程序的“生产就绪”清单中通常包含的内容
原文地址:https://www.weave.works/blog/production-ready-checklist-kubernetes
什么是生产就绪?
集群生产准备就绪程度在某种程度上取决于你的用例,并且可能需要进行权衡。 尽管群集在足以满足流量需求的情况下就可以投入生产,但许多人都同意,在安全地宣布群集已准备好用于商业流量之前,需要满足最低要求。
创建可靠的生产设置时,以下领域很重要。 根据你的特定用例,其中一些主题将比其他主题更重要。
将安全漏洞和攻击面保持在最低限度
确保正在运行的应用程序是安全的,并确保所存储的数据(无论是你自己的还是客户端的)都不受攻击。除此之外,请注意你自己的开发环境中的安全漏洞。而且,由于Kubernetes是一个快速发展的开源项目,因此还需要掌握更新和补丁,以便及时应用它们。
通过微调集群性能来最大化可移植性和可伸缩性
在任何地方运行和管理应用程序是Kubernetes成为第一协调器的原因,它具有自我修复节点,自动扩展基础架构并适应不断扩展的业务的能力。大多数人希望在不影响性能的情况下拥有自我修复和可伸缩性的所有优势。
实施安全的CICD管道以实现连续交付
有了基础架构,自动化的连续部署和交付管道使你的开发团队可以通过提高发布频率和可重复部署来最大程度地提高速度并提高生产率。
将可观察性用作部署催化剂
可观察性不仅在于能够监视系统,还在于对正在运行的服务有一个高层次的了解,以便你可以在部署之前做出决定。为了实现真正的可观察性,您需要适当的流程和工具来通过及时的事件告警对监控进行操作。
创建灾难恢复计划
确保应用具有高可用性,这意味着如果发生故障,群集可以自动恢复。
群集的生产就绪清单
名称 | 解释 | 为什么需要? |
---|---|---|
Build Pipeline |
1)测试,集成,构建并将容器镜像存放到注册表 2)制品应使用Git commit SHA进行标记,以验证来源 |
确保在部署之前没有错误的制品 |
Deployment pipeline | 获取构建制品,并将其交付给集群 | 更安全的部署方式。 如果需要,可以添加审批节点 |
Image Registry |
1)储存制品 2)需要凭据以供CI推送和群集提取镜像 |
保持各版本制品都可用 |
Monitoring Infrastructure | 收集和存储指标 | 监控正在运行的系统,并在出现问题时发出告警 |
Shared Storage |
1)存储超出Pod生命周期的应用程序的持久状态 2)应用程序将其视为目录,并且可以是只读的 |
并不是所有应用都是无状态的 |
Secrets management | 应用程序如何在整个应用程序中以及与群集之间来回访问机密凭据 | 访问外部服务需要密码等私密信息,类似于加密的configmap |
Ingress controller | 为所有入站流量提供公共路由点 | 易于管理身份验证和日志记录 |
API Gateway | Api网关 | HTTP级别的路由,用于跟踪,日志记录,身份验证的通用和集中式工具 |
Service Mesh | 在Kubernetes之上提供一个附加层来管理路由 | 复杂的用例,例如渐进式交付。 添加服务间TLS,负载平衡,服务发现,监视和跟踪 |
Service catalogue / Broker | 提供轻松依赖服务和服务发现 | 简化部署应用程序 |
Network policies | 在允许的连接和服务上创建规则,需要一个CNI插件 | 防止未经授权的访问,提高安全性,隔离名称空间 |
Authorization integration | 将API级别集成到Kubernetes身份验证流程中 | 使用现有的SSO减少帐户数量并集中管理帐户,可以与几乎所有身份验证提供程序集成 |
Image scanning | 在管道的CI阶段实现自动扫描容器镜像中的漏洞 | 避免CVE(公共漏洞和暴露)造成的影响 |
Log aggregation | 将应用程序中的所有日志放入一个可搜索的位置 | 日志是发生问题的最佳信息来源 |