通过CNCF基金一致性认证的,会得到CNCF基金会给企业颁发一个Certified Kubernetes的认证。如图:
Certified Kubernetes是CNCF基金会在2018年推出的Kubernetes一致性认证计划。它由CNCF基金会提供的一套诊断测试工具(Sonobuoy)并运行在Kubernetes中。各云厂商如果需要将自己产品纳入到Certified Kubernetes当中,就需要按照操作指导进行自身测试,并将测试结果上传给CNCF社区,当报告审核通过,交付一定的费用(CNCF Members免费)后,就会得到CNCF基金会给企业颁发一个Certified Kubernetes的认证。也就是说得到认证后企业就能在自己的产品宣传上使用CNCF基金会的Certified Kubernetes商标和在产品中使用带Kubernetes字样的名称。
Certified Kubernetes好处
一致性
只要获得了一致性认证,用户在对任何Kubernetes厂商发行版进行安装或交互时,得到的和原生Kuberentes功能几乎一致的体验
及时更新
为了保持认证,CNCF基金会要求厂商需要每年或更频繁地提供对最版本的Kubernetes支持。通常情况下来说,厂商提交的产品适配的版本,为官方最新的次要发型版本(x.y)以及最近的两个发行版(x.y-1 和 x.y-2)
例子,在Kubernetes v1.26发布后,新的合格产品最初可以针对Kubernetes v1.26、v1.25或v1.24进行自我认证,但不能针对v1.23再进行测试。
可确认性
任何终端用户都可以通过运行用于认证的相同的开源一致性应用程序(Sonobuoy)来确认他们的发行版或平台仍然符合要求,以免用户被厂商锁定。
Sonobuoy
Sonobuoy 是一个诊断工具,通过它我们可以访问且以非破坏性的方式运行一组插件(其中包括Kubernetes一致性认证的测试)使我们更轻松地了解 Kubernetes 集群的状态。同时Sonobuoy 也是一种可定制、可扩展和黑盒的方式生成有关Kubernetes集群的相关报告工具。
我们可以用Sonobuoy来对Kubernetes内的资源做如下用例测试:
集成的端到端 (e2e) 一致性测试
工作负载调试
扩展插件来采集自定义数据
认证步骤
1、下载
https://github.com/vmware-tanzu/sonobuoy/releases
注意:版本和k8s版本一致
2、安装
tar -xvf <RELEASE_TARBALL_NAME>.tar.gz 解压至执行目录
3、使用
1)执行:./sonobuoy run --mode=certified-conformance --image-pull-policy IfNotPresent
备注:标准的一致性测试集目前是由 kubernetes e2e套件中的 [Conformance] 标签定义的,这里使用的都是标准测试集
2)sonobuoy images查看使用的镜像列表
可以先连外网把镜像下载下来再导入到集群各节点变为本地镜像,跑case时使用镜像策略IfNotPresent
也可以修改镜像配置:
$ sonobuoy gen default-image-config > custom-repo-config.yaml
$ cat ./custom-repo-config.yaml
然后执行时指定镜像配置:--e2e-repo-config conformance-image-config.yaml
执行测试用例:
```bash
sonobuoy run --mode=certified-conformance \
--e2e-repo-config custom-repos.yaml \
--kube-conformance-image ehub.ctcdn.cn/eck/sonobuoy/conformance:v1.25.6 \
--sonobuoy-image ehub.ctcdn.cn/eck/sonobuoy/sonobuoy:v0.56.15 \
--systemd-logs-image ehub.ctcdn.cn/eck/sonobuoy/systemd-logs:v0.4 \
--kubeconfig kubeconfig
```
此处将镜像下载到镜像服务中。
buildImageRegistry: ehub.ctcdn.cn/eck/sonobuoy
dockerGluster: ehub.ctcdn.cn/eck/sonobuoy
dockerLibraryRegistry: ehub.ctcdn.cn/eck/sonobuoy
e2eRegistry: ehub.ctcdn.cn/eck/sonobuoy
e2eVolumeRegistry: ehub.ctcdn.cn/eck/sonobuoy
gcRegistry: ehub.ctcdn.cn/eck/sonobuoy
gcEtcdRegistry: ehub.ctcdn.cn/eck/sonobuoy
promoterE2eRegistry: ehub.ctcdn.cn/eck/sonobuoy
sigStorageRegistry: ehub.ctcdn.cn/eck/sonobuoy
如果case跑失败,查日志找到失败的具体case,先清除资源sonobuoy delete --all
3)sonobuoy logs 查看日志
sonobuoy status 目前的运行状态
4、上传结果提交pr
在Github上Fork社区的**[cncf/k8s-conformance]**到自己的仓库,并在指定的Kubernetes目录下创建一个目录。目录要求是一个简短的产品名称。同时将e2e.log和junit_01.xml两个文件伙同产品描述文件(PRODUCT.yaml)一起保存在目录下。
提交pr@taylorwaggoner审核,一般一周内会进行回复。