我有许多类似的项目 - angular 中的前端模块 + spring-boot 中的后端模块。它们都有额外的图表模块,包括配置图、部署、机密、服务、路由/入口等。它们在基础设施方面看起来基本相同,只是名称不同。
我想我可以用 Kubernetes CRD/Operator 来简化这一切——像这样:
kind: MyCustomProject
metadata:
name: my-custom-project
spec:
frontendModuleName: custom-frontend
backendModuleName: custom-backend
backendRouteHost: backend.myorganization.com
frontendRouteHost: backend.myorganization.com
当我将这个简单的片段上传到 Kubernetes 时,它会运行我的自定义代码,在下面创建正确的部署、服务、路由/入口等。
我认为这可以通过 Kubernetes Operator 来完成,但如果我没记错的话,Kubernetes Operator 有一个控制器可以定期运行。另一方面,我需要一些能够创造所需资源并停止的东西。我不需要它来检查任何状态或修复任何东西。基本上我需要的是一个侦听器来侦听MyCustomProject
对象的创建,然后在发生这种情况时运行一些自定义代码。
我该如何处理?我是否需要一个具有一些技巧的操作员才能只运行一次?还是一个操作员create if not exists
?
任何帮助在这里表示赞赏,即使不是对问题的直接回答。