张哲刚评论|SunShujuan梁策《服务。Kubernetes备份对于在发生意外、系统崩溃或恶意攻击时保护应用程序运行至关重要。除了应用程序自身的弹性和数据保护机制外,还需要有一个正确的合理的Kubernetes备份和恢复策略应该满足以下要求:在不可抗力的情况下,整个集群仍然可以恢复(灾难恢复);恢复特定的应用程序(如某些数据损坏时);在不同环境下集群之间迁移集群(本地到云端,反之亦然);Kubernetes备份的难点在于容易出错,这就需要技术人员在操作备份时要小心,否则很难(甚至不可能))将集群或应用程序从崩溃中恢复到正常状态。本文探讨了Kubernetes备份的风险因素和最佳实践通过分析七种常见的Kubernetes备份和恢复错误,掌握使用Kubernetes备份的技巧。Kubernetes备份有何不同?Kubernetes备份应用程序与虚拟机上的备份和恢复有很大不同。Kubernetes环境非常动态,单个生产应用程序可以包含数百个组件,包括容器或Pod、配置文件存储、证书、加密凭证和卷。根据负载或其他运行需求,容器实例不断变化,同时将数据写入存储到单个或多个可动态创建的持久化卷中。为了成功恢复,Kubernetes应用程序备份必须捕获所有这些信息。一个好的Kubernetes集群备份必须包括:存储在/etcd中的所有Kubernetes控制平面参数、所有命名空间和所有持久卷。Kubernetes备份和恢复陷阱操作员和开发人员都可能犯错误,即使是最强大的硬件和软件也可能崩溃。在网络犯罪猖獗的今天,正确、完整、及时的备份是抵御人为不法行为的最后一道防线。Kubernetes备份和恢复对于生产运营的正常运行至关重要,因此我们要尽量避免以下七种常见错误:错误一:手动编写脚本来管理备份如果应用环境和业务需求非常有限,可以只需使用KubernetesAPI编写脚本,即可备份或快照与应用程序关联的pod、服务、配置文件存储、数据存储和加密凭据。但这种方法的缺点是它根本无法扩展。随着部署的集群和应用程序数量的增长,这种方法会失败。并且,在完全依赖手动脚本的环境中,所有操作都变得非常脆弱,难以跟踪和追溯。最终结果是每个集群都产生了自己的变体,问题升级到只有经验丰富的专家才能解决的程度。错误2:备份过程不是自动化的Kubernetes部署的目标是尽可能自动化操作。自动化对于大规模业务运营至关重要。严格来说,任何需要定期执行的任务都必须自动化,包括集群和应用程序备份。另外,由于Kubernetes环境变化频繁,技术人员除了定时备份外,还必须能够及时操作临时备份。错误3:使用多种管理工具来管理备份随着Kubernetes环境随着时间的推移而发展,使用多种工具来管理备份是很常见的。技术人员针对不同的Kubernetes发行版适配了不同的工具;或者使用不同的工具在本地集群和公共云中进行备份。技术人员使用现有的工具或脚本来备份/etcd(控制面板),但使用其他工具或存储路径来备份持久卷。没有问题的时候,一切似乎都安然无恙。但迟早,使用多种管理工具会导致Kubernetes恢复出现问题。如何协调两个或多个管理工具同步恢复到某个时间点?如果必须在几个不同的集群中恢复同一个应用程序怎么办?所以,正确的选择是简单地使用一个简单明了(至少尽可能简单明了)的工具来管理,这样无论何时何地恢复操作都是一样的,熟悉的路。错误4:持久卷没有正确备份持久卷,顾名思义,就是持久的。如果你想让持久卷真正持久,那么备份是必须的。Kubernetes环境是动态的,因此备份需要随之移动,以跟上集群和应用程序变化的步伐。如果备份仅限于当前操作员视野内的持久卷,则备份操作迟早会漏掉,无法正确备份所有内容。无论是个人用途还是商业用途,Kubernetes备份部署都必须能够检查集群的状态,以确定需要备份哪些持久卷。基于策略的方法可确保技术人员根据所需的服务级别在正确和必要的时间范围内备份持久卷。错误5:没有能力监控备份执行系统管理员可能发生的最糟糕的事情是启动紧急恢复,却发现过去两周的备份全部失败。无论使用何种备份工具,都必须严格要求具备监控备份执行和验证备份是否成功的能力。静默禁用备份是各种形式和规模的勒索软件攻击常用的策略,因此此功能尤为重要。一旦无法找回,唯一的选择就是挖出钱包。错误6:没有安全地存储备份凭据随着Kubernetes环境扩展到多个集群,有必要为每个集群准备单独的备份凭据。这些凭据有可能成为主要漏洞。因此,管理和保护它们免受未经授权的访问是存储备份凭证的底线。理想情况下,有一个Kubernetes备份部署可以自动处理备份和其他凭据。我们最近的博客文章《保卫 Kubernetes:将零信任原则应用于Kubernetes环境》解释了如何应用Kubernetes内置功能来防止未经授权访问Kubernetes集群。误区七:没有做好合规管理。每个行业都必须遵守法规并具有必须满足的法规要求。大多数组织也有自己的行业代码。重要的是要了解这些监管要求,以确保您合规或有保证金,并确保您有能力向审计员和安全部门证明合规性。定期报告可以检查和发现问题,找出Kubernetes备份计划没有实施的地方,降低数据丢失或泄漏的风险,防止频繁宕机影响商业信誉。译者介绍张哲刚,51CTO社区编辑,系统运维工程师,国内较早的一批硬件测评和互联网从业者,曾供职于阿里巴巴。十余年IT项目管理经验,具备复合型知识技能,曾参与多个网站架构设计、电子政务系统开发,领导运维某市级招生考试管理平台。原标题:7CommonKubernetesBackupandRecoveryMistakes,作者:KyleHunter
