Kubernetes的采用呈爆炸式增长,抛开炒作不谈,Kubernetes仍处于起步阶段,还有很长的路要走,它有潜力成为架构中大多数IT组件的基础.与此同时,大多数(如果不是大多数)企业和IT商店在进入Kubernetes领域时,只是在尝试探索Kubernetes这个令人惊叹的新领域。在开发人员开始在平台上工作之前,管理员、运营团队或DevOps必须打下基础,将传统且重要的数据管理组件添加到组合中:持久存储是Kubernetes部署中必要组件的一个很好的例子。例,但实现起来并不容易。向无状态企业添加持久性的一个关键要求是开发人员能够将数据存储在Kubernetes集群中,而不必担心持久性存储在幕后如何工作。“应用程序开发人员和DevOps团队不是数据管理员。就像我不希望我的DBA扮演应用程序开发人员一样,我真的不希望我的应用程序开发人员扮演DBA。”企业管理协会(EMA)分析师JohnL.Myers说。“我想让应用程序开发人员有机会通过API访问持久数据管理层,而不是每次部署容器化应用程序时都必须从头开始创建一个。”但是,Kubernetes的结构使其不适合部署在有状态卷上。优越的。ConstellationResearch分析师HolgerMueller表示:“容器从来没有被设计成耐用的,但企业需要持久地改变负载、维护状态、为不同的负载使用更多的硬件等等。这是企业界容器设计的一个缺陷,因为对企业重要的一切都需要耐用。”然而,Kubernetes提供了多种设置持久存储的选项。例如,Kubernetes提供了一种在挂载到容器编排平台的卷上静态和动态地提供数据的方法,“这使用户可以在需要时灵活地使用存储”MapR产品管理总监SuzyVisvanathan表示,Kubernetes提供的灵活卷插件使外部提供商能够与Kubernetes集成,但它也有其问题。在引入容器存储接口(CSI)模型之前,Visvanathan说,问题是插件依赖性。编排层使用ApacheMesos、RedHat、OpenShift、Docker和云解决方案(例如适用于Kubernetes的AmazonElasticContainerService(EKS)和GoogleKubernetesEngine(GKE))与Kubernetes内部构件显式集成。“CSI模式使得将外部存储解决方案与Kubernetes集成变得更加容易,”Visvanathan说。扩展许多企业一直在寻求扩展Kubernetes以容纳共享容器资源的大量用户。然而,如何扩展持久存储组件是一个很大的挑战。例如,传统存储解决方案及其配置不一定是最合适的。“Kubernetes可以在生产环境中轻松快速地扩展容器。下一个挑战是提供一个可以与之扩展的数据平台,”MapR的Visvanathan说。“传统的存储选项根本无法跟上这种规模。在Kubernetes中改进遗留安全措施进一步加剧了这种情况,”MapR的Visvanathan指出,仍然不提供全球可寻址的命名空间或混合/多云移动性。”“Kubernetes用于云式弹性和选择您选择的云模型的能力,包括本地、混合或多云部署,”Visvanathan说。“持久存储需要实现相同的目标。”“与此同时,在具有内部存储的服务器上部署容器使扩展更加直接,”Diamanti产品营销总监SeanRoth说。“扩大存储空间可能会造成破坏,并可能导致大量且通常是意想不到的额外费用,”Roth说。“Kubernetes中持久存储的主要挑战主要来自扩展。对容器存储基础设施采取自己动手的方法可能具有破坏性和成本。”最终,企业需要在越来越多的服务器之间平衡存储使用。跨Kubernetes部署共享存储的可用资源可以包括网络文件系统(NFS)或开源集群文件系统协议,如Ceph或GlusterFS,Roth说。卷集成尽管存在上述挑战,但Kubernetes确实提供了广泛的存储集成卷选项,这些选项还在不断改进。例如,Kubernetes提供了一种在Kubernetes上静态和动态调用数据的方式,Visvanathan说。“这为用户提供了在需要时使用存储空间的灵活性。”CloudPassage的策略工程专家AshWilson表示,事实上,Kubernetes的卷存储驱动程序选项可以促进使用许多不同的持久存储机制,添加一些卷驱动程序是IaaS(基础设施即服务)平台特定的,一些开发人员不了解底层的云基础设施。“这些卷存储驱动程序选项非常好,但需要很长时间才能正确评估和确定哪些最能满足应用程序的需求,”Wilson说。“在Kubernetes中与保护持久存储相关的任务通常是特定于驱动器的,因此在架构过程中必须考虑安全性,”部署裸机服务器的MapR的Visvanathan说。也非常适合裸机服务器部署。这是因为容器虚拟化了操作系统,而不是虚拟化操作系统下的硬件。”“容器,就其本质而言,是部署裸机应用程序的理想方式,而Kubernetes简化了容器的创建和管理,”Visvanathan说。“这是概念的自然延伸,Kubernetes的持久化存储也是裸机上最好的服务。”一旦容器具有弹性,虚拟化服务器就不会提供任何额外的好处,因此它们只是一个没有附加值的附加层。在确定用户对运行在ubernetes中的应用程序的访问权限时,“安全考虑”是一个很大的障碍动态Kubernetes工作负载的无状态特性。事实上,Kubernetes存储的一个主要安全问题是维护访问控制和授权特权,以确保只有相关容器和服务才能访问敏感数据,”AquaSecurity营销副总裁RaniOsnat说。“有几种方法可以实现这一点,但它们必须与具有应用程序上下文并与特定服务相关联的安全策略相关联,”Osnat说。为保护Kubernetes持久存储而提供的安全工具也应该继续发展。也就是说,凡事都需要及时改进。CloudPassage的Wilson表示:“短暂的工作负载可能会在捕获适当的安全信息方面带来挑战,尤其是出于审计和合规目的。这可能需要工具进化,而不是放慢敏捷流程。”“存储机制的跟踪、审计和保护也有类似的问题——工具必须不断发展以满足安全需求,并且不应该减慢应用程序的交付过程。”译者介绍:刘志红,17年IT行业经验。曾在NTTDATA、甲骨文、中钞造币集团、中国电信云计算分公司从事云计算等相关IT研发工作。独立拥有软件著作权1项。目前供职于电子工业出版社。
