左移测试在Kubernetes中的应用

Posted k8s中文技术社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了左移测试在Kubernetes中的应用相关的知识,希望对你有一定的参考价值。


Kubernetes容器编排引擎是一个复杂的软件,它为错误配置提供了许多机会。例如,Kubernetes配置基准报告分析了100000多个Kubernetes工作负载,发现每个集群平均有328个Kubernetes错误配置,这对负责基础设施的专业人员来说是一场噩梦。这可能就是网络安全公司Cyble发现90多万个Kubernetes集群由于配置错误而暴露在互联网上的原因。

在过去几年中,软件行业越来越多地采用左移测试策略,该策略提倡在部署管道生命周期中更早地完成测试。由于其声明性,Kubernetes是一个很好的工具,可以在其中实现左移策略。在本文中,我们将通过查看开源解决方案Gatekeeper和Datree,探索右移和左移策略在发现Kubernetes集群错误配置方面的优势。

右移测试

在讨论左移测试之前,让我们先讨论一下它的对立面。右移测试尽可能推迟测试阶段,通常在部署到生产或投入生产之前。这种方法过去一直在软件行业中使用。它的优点是能够捕捉到在过渡环境中可能检测不到的东西,例如性能问题、故障容忍度或应用程序的用户体验。

开源软件Gatekeeper充当Kubernetes API服务器和OPA策略之间的桥梁。每当资源创建、更新或删除请求发送到Kubernetes集群时,Gatekeeper将作为验证webhook,并检查提交的请求是否违反预定义的OPA策略。由于Gatekeeper是在集群级别执行其工作的,可以在部署之前的过渡阶段完成,也可以直接在生产中完成,因此它可以用作右移测试策略的一部分。

然而,这并不总是一个理想的场景。右移测试意味着,通常位于发货管道远端的基础设施团队将不得不处理错误配置。这可能很快成为一项艰巨的任务,尤其是如果有许多开发人员,他们的数量通常大大超过了基础设施团队的数量。

每个Kubernetes集群平均有328个错误配置,情况很快就会失控。这可能会导致应用程序开发生命周期的速度急剧下降,并导致开发人员对他们的代码无法投入生产感到沮丧。

左移测试

这就是左移测试方法可以提供帮助的地方。通过将测试阶段提前,最好是在开发阶段,每个开发人员都成为一个测试单元。因为测试阶段是在他们的级别上进行的,与责任归于另一个团队相比,他们将更多地参与捕捉错误配置。这将增加测试覆盖率,提高应用程序交付速度,并避免开发人员因看到他们的代码处于预生产状态而感到沮丧。

开源软件Datree提供了一个CLI工具,可以发现Kubernetes的错误配置,可以直接在开发人员的笔记本电脑上执行,或者作为CI/CD管道的一部分,也可以作为左移测试策略的一部分。将测试阶段移到左边的一个重大挑战显然是让开发人员参与测试,并确保他们拥有相关知识。这就是为什么工程领导层必须确保与团队广泛讨论该主题。

必须组织头脑风暴会议,提出每个人都知道并同意的测试基线。提供开发人员友好的工具来发现错误配置也将增加团队参与的机会。例如,Datree提供了将自动检查直接集成到代码编辑器中的VS插件,同时提供了不需要大量Kubernetes管理知识的开发人员友好的错误消息。

一旦左移测试策略到位,开发人员的团队也加入进来,确保跟踪进度。与跟踪应用程序代码库的覆盖率测试类似,对Kubernetes配置文件执行相同的操作。请记住,在团队起立时提出这个主题,庆祝成功,并讨论测试挑战,以确保左移测试成为应用程序生命周期中顺利的一部分。

右移和左移战略都有利弊,但左移战略正在兴起,这通常是公司需要改进的地方。最终,两者都到位可以提供可靠的测试覆盖率。

左移测试在Kubernetes中的应用_测试策略

在当今快速发货CI/CD管道中,在过程中尽早修复Kubernetes错误配置可以将错误配置成本从15000美元减少到8美元。因此,不要让你的公司基础设施滑入这个成本高昂的区域!

​https://thenewstack.io/shift-left-testing-applied-to-kubernetes/​

以上是关于左移测试在Kubernetes中的应用的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes的污点(Taint)和容忍(Tolerations)

Kubernetes:标签选择器注解容忍度亲和性

Kubernetes 调度使用介绍(亲和反亲和污点容忍)

Kubernetes 调度使用介绍(亲和反亲和污点容忍)

Kubernetes 调度使用介绍(亲和反亲和污点容忍)

Kubernetes污点(taints)与容忍(tolerations)