软件一致性尤为重要,它可以避免分裂,使众厂商将精力聚焦于共同推动软件发展而不是自成一家。2017年CNCF启动了Kubernetes一致性认证计划,CNCF提供一套测试工具,各厂商按照操作指导进行测试自身的产品,将测试报告上传给CNCF社区,CNCF审核测试报告后,会给符合条件的企业颁发一个证书。 大致流程:操作流程图.png

1. 环境信息

  • 亚太机器ubuntu(16.04.6)两台,192.168.0.3/192.168.0.4
  • k8s1.18.3(1master+1node)(至少两台机器)
  • sonobuoy0.18.3

2.k8s及云平台的部署

curl -O -k https://kubernetes.pek3b.qingstor.com/tools/kubekey/kk
chmod +x kk
./kk create cluster --with-kubernetes v1.18.3 --with-kubesphere

3. sonobuoy组件部署及运行

  • sonobuoy二进制文件下载
wget https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.18.3/sonobuoy_0.18.3_linux_amd64.tar.gz
  • 解压,tar -xzvf sonobuoy_0.18.3_linux_amd64.tar.gz
  • 配置环境变量,sonobuoy执行文件拷贝到/usr/local/bin下 cp sonobuoy /usr/local/bin/

4. sonobuoy执行及相关指令

  • 在集群中部署一个sonobuoy的pod,–mode=certified-conformance参数在Kubernetesv1.16(Sonobuoy v0.16)需要添加,指令为:
sonobuoy run --mode=certified-conformance
  • sonobuoy运行状态
sonobuoy status
  • 详细的日志
sonobuoy logs
  • 通过sonobuoy status显示“completed”,可以通过如下指令获取输出结果,需要提交的内容在plugins/e2e/results/global/{e2e.log,junit_01.xml}目录下
sonobuoy retrieve
  • 删除sonobuoy组件
sonobuoy delete

5. 提交的pr包含内容

  • 5.1 fork k8s-conformance代码到你GitHub账号下,然后git clone到本地。
  • 5.2 在本地找到对应的k8s版本号,然后在里面建相关的名字即可,比如在v1.18版本下创建KubeSphere目录。
  • 5.3 自己项目目录下,需要包含以下四个文件,e2e.log、junit_01.xml、PRODUCT.yaml和README.md
  • 5.4 e2e.log和junit_01.xml两个文件是通过上面四步骤下解压的两个文件。
  • 5.5 PRODUCT.yaml包含的内容大致为:
vendor: 组织结构
name: 项目名
version: 版本号
website_url: 项目官方浏览页
repo_url: 项目官方镜像仓库地址
documentation_url: 项目官方文档
product_logo_url: 项目log图标
type: 开源/非开源
description: 项目的描述
  • 5.6 README.md包含的内容大致为:
To reproduce:
本身项目的安装方法
sonobuoy项目的安装方法
  • 5.7 提交代码到自己GitHub账号下,然后提pr即可。

6. 参考文章

https://github.com/cncf/k8s-conformance/blob/master/instructions.md