人们需要了解有关Kubernetes的一些最佳实践,可以确保采用Kubernetes真正推进容器部署。
企业是否准备好将容器化工作负载转移到生产环境中,或者还在努力应对面临的一些挑战?而采用具有很多依赖关系的复杂工作负载、在没有良好框架的DevOps实践的情况下部署容器化工具,以及更快地陷入供应商锁定可能是企业面临的一些挑战。企业需要拥有合适的DevOps团队,并了解Kubernetes如何与企业的技术基础设施集成以进行传统应用程序现代化,这些措施是解决问题的方法。企业在采用新技术之前,应该考虑是否拥有必要的角色和技能。企业必须从技术角度决定运行时和编排引擎,同时谨慎地选择容器化工作负载。
随着70%以上的企业在生产中运行容器化应用程序,Kubernetes已经成为最受欢迎的容器方法之一。以下是确保企业采用Kubernetes真正推进容器部署的一些最佳实践。
在容器平台战略中是否遵循了这些实践? (1)安全和治理
调研机构Gartner公司表示,安全性不能是事后的想法。如果企业将安全性嵌入到DevOps流程中,将会有所帮助。采用DevSecOps意味着在整个组织内灌输安全文化,同时接受安全自动化。通过图像扫描,企业可以在持续集成/持续交付管道中实现DevSecOps。还可以利用开源工具来审核Docker容器。这里的目标是威胁发现过程的自动化。此外,企业的安全领导者应该遵循互联网安全中心(CIS)基准。他们需要确保适当的访问控制,同时使用第三方加密服务保护凭据和敏感信息。
(2)监控和可观察性
从历史上看,监控工具的重点一直是物理主机级别的指标,例如CPU利用率、每秒输入输出(I/O)、内存利用率、网络带宽和延迟。这些指标缺乏服务或容器级别的详细信息。DevOps进一步细化到容器的功能监控。Gartner公司在其发表的“在生产中运行容器和Kubernetes的最佳实践”报告中指出,企业的重点应该放在容器粒度和服务级别跨容器的监控上。通过这种方式,企业可以监控“应用程序”而不仅仅是物理主机。此外,应该优先考虑与所选Kubernetes分发供应商提供深度集成的供应商和工具。具有自动化服务发现的工具受到青睐。这些工具应该执行丰富的应用程序监控、执行分布式跟踪、使用分析和/或机器学习、与开源仪器框架集成,并提供实时的面向行动的建议。
(3)存储
Gartner公司认为,向传统应用程序现代化转型的企业应该选择与微服务架构原则保持一致的存储解决方案。这些解决方案应该符合容器原生数据服务的需求,具有分布式架构,并表现出硬件不可知性。存储解决方案应该是API驱动的,并支持内部部署、公有云和边缘计算设施。此外,企业应该对存储产品的稳定性和性能进行有效的审核,确保它与Kubernetes发行版集成,并很好地支持容器存储接口(CSI)。容器上的有状态工作负载是当今的发展趋势。而对于应用程序的现代化服务,在面向微服务的有状态应用程序的情况下,基础设施和运营(I&O)领导者需要一个存储平台来最大限度地提高工作负载的敏捷性、性能、可用性。
(4)网络
网络解决方案应该与Kubernetes的策略引擎紧密集成。IT领导者的职责是实现高度的网络自动化,同时为开发人员提供有效的工具和足够的灵活性。企业必须审核其容器即服务(CaaS)或软件定义网络(SDN)工具。需要检查该工具是否支持集群和Kubernetes网络中跨主机的负载平衡。选择的Kubernetes发行版应该提供入口控制器支持,以在集群中的主机之间进行负载平衡。确保企业对网络工程师进行网络自动化工具和Linux网络方面的培训,以提高敏捷性并弥合技能差距。
(5)DevOps工具链集成
在加速应用程序交付管道方面,自动化工具占据主导地位。更确切地说,企业应该采用持续集成(CI)/持续交付(CD)管道、基础设施即代码(IaC)产品和代码存储库来补充容器编排,以实现高度自动化和无缝的应用程序交付管道。他们应该通过基础设施自动化工具自动化围绕基础设施配置和管理任务。此外,使用容器感知配置管理系统进行容器镜像生命周期管理。作为操作容器和Kubernetes的最佳实践,企业应该将Kubernetes平台与持续集成(CI)/持续交付(CD)工具集成。这有助于自动化容器镜像构建、测试和部署到生产。
开发团队可以通过容器定义运行时的应用环境。这导致预生产和生产环境之间的不可预测性降低。此外,开发团队可以在类似生产的环境中构建和测试应用程序。为此,他们将DevOps工具链与基于Kubernetes的容器编排工具集成在一起。不同环境之间的一致性提高了生产可靠性,还可以促进运营团队和开发团队之间更好的协作。
企业的容器平台战略是否到位?
Gartner公司预测,到2025年,85%以上的全球性企业将在生产中运行容器化应用程序。而在生产中运行Kubernetes和容器的最佳实践之后,现在是企业在其转向传统应用程序现代化和云原生应用程序时充分利用容器和Kubernetes的时候了。通过遵循这些实践,基础设施和运营领导者可以轻松地在生产环境中启用和加速容器部署。