-
本地运行controller时跳过webhook
-
controller的pod有两个容器
-
常用操作命令整理
- 接下来挨个整理,今天的内容不写代码,咱们来一次轻松愉快的阅读;
CRD的Status字段
-
这个坑算是自己挖的,希望您能提前避开;
-
回顾elasticweb的CRD,其数据结构代码如下图:
-
该CRD的Status数据结构只有一个字段RealQPS,该字段的Tag(也就是上图红框),里面的omitempty属性非常重要!!!
-
如果RealQPS的Tag中没有omitempty属性,会发生什么事情呢?
-
实际上,在开发webhook之前,我一时大意漏掉了RealQPS的omitempty属性,但是整个controller可以正常工作,elasticweb的功能也达到了咱们的预期,也就是说status的字段如果没有omitempty属性,不影响operator的功能;
-
但是,在启用了webhook之后,创建资源对象时就报错了:
zhaoqin@zhaoqindeMBP-2 elasticweb % kubectl apply -f config/samples/elasticweb_v1_elasticweb.yaml
namespace/dev created
The ElasticWeb “elasticweb-sample” is invalid: status.realQPS: Invalid value: “null”: status.realQPS in body must be of type integer: “null”
- 也就是说,Status数据结构的字段中,如果json tag没有omitempty属性,在启用了webhook之后创建资源对象会失败;
选择合适的镜像仓库
- 看过之前文章的您,应该还记得构建镜像的命令:
make docker-build docker-push IMG=bolingcavalry/elasticweb:001
-
因为我在hub.docker.com上注册的帐号是bolingcavalry,因此上述命令可以将做好的本地镜像推送到hub.docker.com的仓库中(记得提前用docker login命令登录);