go语言快速入门自定义包 go 自定义包( 五 )


调试
如果我们本地有一个可以访问的 Kubernetes 集群,我们也可以直接进行调试,在本地用户~/.kube/config文件中配置集群访问信息,下面的信息表明可以访问 Kubernetes 集群:
首先,在集群中安装 CRD 对象:
上面的命令会在本地运行 Operator 应用,通过~/.kube/config去关联集群信息 , 现在我们去添加一个 AppService 类型的资源然后观察本地 Operator 的变化情况,资源清单文件就是我们上面预定义的(deploy/crds/app_v1_appservice_cr.yaml)
直接创建这个资源对象:
我们可以看到我们的应用创建成功了,这个时候查看 Operator 的调试窗口会有如下的信息出现:
然后我们可以去查看集群中是否有符合我们预期的资源出现:
看到了吧,我们定义了两个副本(size=2),这里就出现了两个 Pod,还有一个 NodePort=30002 的 Service 对象 , 我们可以通过该端口去访问下应用:
如果应用在安装过程中出现了任何问题,我们都可以通过本地的 Operator 调试窗口找到有用的信息,然后调试修改即可 。
清理:
部署
自定义的资源对象现在测试通过了,但是如果我们将本地的operator-sdk up local命令终止掉,我们可以猜想到就没办法处理 AppService 资源对象的一些操作了,所以我们需要将我们的业务逻辑实现部署到集群中去 。
执行下面的命令构建 Operator 应用打包成 Docker 镜像:
镜像构建成功后,推送到 docker hub:
镜像推送成功后,使用上面的镜像地址更新 Operator 的资源清单:
现在 Operator 的资源清单文件准备好了,然后创建对应的 RBAC 的对象:
到这里我们的 CRD 和 Operator 实现都已经安装成功了 。
现在我们再来部署我们的 AppService 资源清单文件,现在的业务逻辑就会在上面的opdemo-64db96d575-9vtq6的 Pod 中去处理了 。
然后同样的可以通过 30002 这个 NodePort 端口去访问应用 , 到这里应用就部署成功了 。
清理
有资源清单文件,直接删除即可:
开发
Operator SDK 为我们创建了一个快速启动的代码和相关配置,如果我们要开始处理相关的逻辑,我们可以在项目中搜索TODO(user)这个注释来实现我们自己的逻辑,比如在我的 VSCode 环境中,看上去是这样的:
本篇文章示例代码地址:
参考资料
go语言快速入门自定义包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go 自定义包、go语言快速入门自定义包的信息别忘了在本站进行查找喔 。

推荐阅读