Kubernetes 已成为公有云环境中应用部署的事实标准。随着企业将更多工作负载迁移到有状态的应用,稳定性成为持续关注的核心议题。
在业务连续场景下,跨区域、跨云厂商的集群若具备相同配置,恢复应用就相对容易,但应用需要数据才能运行,恢复应用状态的复杂度却往往更高。
企业在为有状态应用构建高可用性以满足服务水平协议(SLA)并保障应用与数据的可用性时,通常会遇到以下挑战。
核心挑战
复杂性
有状态应用在存储配置、弹性与应用移动性之间需要取得平衡。公有云的标准解决方案尚未面面俱到,超出标准解决方案的方案往往需要大量专业知识来设计、部署和维护,因此实现有状态、高弹性的运营仍然是一道长路,需要跨越存储、网络与迁移等领域的能力。许多团队在资金、人员或专业知识上都存在短板。
技能差异
构建存储基础设施所需的技能与多数 DevOps 团队的培训方向存在显著差异。存储专家的专业知识在很多云原生团队中并不普遍,他们通常关注存储网络与设备的配置、维护及数据可用性、弹性与备份等,若缺乏对高阶存储方案的接入能力,往往难以确保在公有云环境中的稳定运行。
供应商绑定
若存储与基础设施强依赖特定供应商(如 EBS、Azure Disk 等),将带来数据重力与绑定效应。数据越集中在某处,迁移到其他位置就越困难,应用的运行位置往往受数据所在区域的影响,影响未来的可迁移性。
数据跨云迁移还会不可避免地影响服务性能。
弹性与多云挑战
弹性局限
仅依赖单一云提供商会带来显著的局限性。跨区域或跨云的有状态基础设施建设过于复杂,很多组织因此被迫坚持单一云或单一区域。
即使实现跨区域的数据迁移,区域故障仍有风险。要在云环境中为有状态应用提供业务连续性,需实现能在第二站点或另一区域即时恢复的能力,确保数据不丢失。
风险与体量问题
风险不可避免
风险与稳定性计划的关联在于,若仅在单一云端或少数云提供商上运行,往往难以实现真正的弹性与容错能力。
臃肿的基础设施
为了实现跨基础设施与跨云厂商的有状态恢复,必须复制应用状态及相关环境,并确保不受底层基础设施的影响。长期来看,这会让基础设施变得越来越臃肿,增加运维成本与复杂性。
解决思路与趋势
随着复杂性上升,企业需要更简化的弹性、性能和运维能力来支撑有状态应用。为此,出现了新的平台与方法论,旨在帮助用户在不同位置配置有状态应用,同时确保应用不因部署位置而中断,数据在不同地点之间保持一致。此类平台强调:在云厂商、区域和数据中心之间实现对有状态应用的自由迁移和快速恢复。
通过这类定位于多云一键部署与可伸缩存储的方案,企业可以在不同部署环境中保持数据可用性,从而提升灵活性、性能与弹性。
无论应用部署在何处,数据的可用性与一致性成为核心。新兴的平台被设计为在跨云与跨区域的环境中保持有状态应用的稳定性,从而更好地实现云的优势与降低其局限性。
借助这些解决方案,企业可以在多云环境下实现有状态 Kubernetes 应用的稳定性与可持续运行。
