Joel Hans为CNCF发布的社区帖子
电信业是当今日益数字化的经济的支柱,但它在适应现代基础设施实践方面面临着新的困难挑战。电信业是如何陷入这种局面的?因为事故或停机的风险非常严重,该行业几乎完全专注于最小化风险和最大化可靠性的系统设计。这对于任务关键型服务来说非常棒,无论是公共空中交通管制还是私人高速银行业务,但它强调的是稳定性而不是生产力,以及采用新技术,这可能会使其运营更加稳定精力充沛,表现出色
电信业正在追赶云计算原生技术,其下游效应也开始显现。这些组织现在在企业和IT的实际选择上落后于时代,这意味着他们不太可能招聘他们所需要的顶级工程人才。在竞争日益激烈的环境中,他们需要提高生产力,更快地部署新的电话平台,而不是陷入内部构建的旧定制解决方案的泥潭
为了实现从内部可信工具到行业可信工具的飞跃,电信组织需要有信心,他们正在正确发展虚拟网络功能(VNF)基础设施,以使用Kubernetes实现云本机功能。这就是CNCF的目标所在
进入CNF电信测试套件
云本机网络功能(CNF)是以云本机方式实现或促进网络功能的应用程序,使用标准化原则开发,由至少一个微服务组成
以及CNF测试套件(cncf/cnf testsuite)是一个开放源代码测试套件,用于电信公司确切了解其cnf的云本机性能。它是为电信开发商和网络运营商设计的,使用Kubernetes和其他云本机技术构建,以验证他们在多大程度上遵循了云本机原则和最佳实践,如不变的基础设施、声明性API和"可重复的部署过程。"
这是一个很难回答的问题的有力答案:我们的云计算能力如何
CNF测试套件利用了10个CNCF托管的项目和几个开源工具。CoreDNS用作最终用户熟悉五个步骤https://prometheus.io/">Prometheus用于可观察性测试,以检查CNF主动公开指标的最佳实践。它还打包了其他上游工具,如OPA守门员,Helm linter和Promtool使安装、配置和版本控制可重复。CNF测试套件团队也感谢Kyverno关于安全测试,LitmusChaos用于弹性测试,以及Kubescope用于安全策略
Minimum install对于CNF测试套件,只需要运行Kubernetes cluster、kubectl、curl和helm,甚至支持在气隙机器或可能需要自托管映像存储库的机器上运行CNF测试。一旦安装,您可以使用示例CNF或自带.yml文件,然后运行"CNF testsuite all"来运行所有可用的测试这里甚至有一个快速的五步流程,用于在不到15分钟内部署套件并获得建议
CNF测试套件涵盖的内容以及原因
2022年初,CNF测试套件可以运行大约60个工作负载测试,这些测试分为7个不同类别
![最佳实践](https://i-blog.csdnimg.cn/blog_migrate/0f023dfa037e3f4cd375e6228b42b898.jpeg)
兼容性、可安装性和可升级性:CNF应与任何经过认证的Kubernetes产品和任何符合其功能要求的CNI兼容网络配合使用,同时使用标准的带内部署工具,如Helm(版本3)图表。CNF测试套件检查CNF是否可以使用"kubectl"进行水平和垂直缩放,以确保它可以利用Kubernetes的内置功能
微服务:CNF应作为微服务开发和交付,以提高灵活性,或缩短部署之间所需的开发时间。敏捷组织可以更频繁地部署新功能,或允许多个团队根据其功能领域安全部署补丁,如修复安全漏洞,而无需首先与其他团队同步
状态:云本机基础设施应该是不可变的、不受环境影响的,并且能够抵御节点故障,这意味着正确管理配置、持久数据和状态。CNF的配置应该是无状态的,存储在自定义资源定义中或本地存储上的单独数据库中,任何持久数据都由statefolset管理安全无状态的信息使基础设施易于复制、一致、一次性,并且始终以可重复的方式部署
可靠性、恢复力和可用性:电信基础设施的可靠性与标准IT相同,它需要高度安全可靠,并且支持超低延迟。云本机最佳实践通过依赖具有更高可用性(平均恢复时间(MTTR))的冗余子组件来减少平均无故障时间(MTBF)),然后通过混沌工程和自愈配置测试这些假设。测试套件使用了一种混沌测试,以确保CNF能够适应公共云环境不可避免的故障或协调器级别的问题,例如POD意外删除或计算资源耗尽时发生的情况。这些测试确保CNF符合电信业在非运营商级共享云硬件/软件平台上的可靠性标准
可观察性和诊断性:每个生产云本机基础设施都必须通过度量、跟踪和日志记录使其内部状态可观察。CNF测试套件寻找与Fluentd,Jaeger,Promtool,普罗米修斯和OpenMetrics,帮助DevOps或SRE团队维护、调试并收集有关其生产环境健康状况的见解,这些环境必须进行版本控制、在源代码控制中维护,并且只能通过部署管道进行更改
安全性:云本机安全性需要操作系统、容器运行时、编排、应用程序和云平台级别的专家关注。虽然其中许多不在CNF测试套件的范围内,但它仍然验证容器是否彼此隔离,以及主机是否定义了资源限制,不允许权限提升,并根据常见CVE进行验证
配置:团队应在a声明性使用配置映射、运算符或其他声明性接口来设计所需结果的方式,而不是如何实现所述结果。声明性配置不需要执行才能被理解,这使得它比命令式配置更不容易出错