你们对Kubernetes基础架构进行自动化实验了吗?

软件开发中的自动化测试是保障软件质量不可或缺一部分。随着容器化技术的不断发展,Kubernetes已经是事实上的标准。那么,通过自动化的方式验证像Kubernetes这样的基础架构的有效性,也越来越重要。这篇文章就介绍如何利用和扩展现有工具来测试Kubernetes的集群。

为什么要测试?

为什么要利用自动化集群测试的原因有很多。Kubernetes是一个非常复杂的系统,由多个独立的组件组成。他们在一种配置中能够正常运行并不意味着他们将在每种配置中都能完美的运行。

通过使用诸如kubeadm或kops之类的安装程序,或设置集群的其他方法,有多种启动Kubernetes集群的方法。对于每种方式,都有许多配置选项,使两个配置看起来不一样。在用户使用集群之前对其进行测试,以确保我们的设置能够按预期执行,从而为用户提供了一个可用的、有价值的平台。但是,集群设置只是第一步,这是因为Kubernetes的更新频繁的发布。这个时候,测试就有其作用了,可用验证更新之后基本的集群功能仍然可用。

不过,Kubernetes不仅仅是一个平台,它还是一个通过插件和附加组件进行扩展的框架。因此,没有一个Kubernetes集群是以一种同样的方式运行。Kubernetes自己的测试不包括插件,因此测试范围仅取决于插件开发人员的测试。为了确保我们的插件不会相互干扰或影响到Kubernetes,我们还应该在设置中对其进行测试。对于您自己编写的插件来说尤其如此。

一致性测试

Kubernetes一致性测试是测试Kubernetes核心功能的端到端测试用例的子集。用开发人员小组的话就是,“目前的测试仅是测试可用,API的必须的功能”,通过这些测试的集群就是合格的,并且可以通过CNCF k8s合格工作组的认证。

目前,能够测试的功能包括创建API对象,在节点上启动容器和挂载基本卷以及对kubectl进行测试。不包括可选功能,例如基于角色的访问控制,NetworkPolicy和PodSecurityPolicy。插件和附加组件也大多不受一致性测试的限制,例如,对DNS进行测试,但某些测试仅隐含地要求使用Weave或Calico等插件进行联网。将来,也可能会通过一致性测试配置文件对插件进行测试,但目前需要分别对其进行测试。
 

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章