我得到了一个任务,创建一个舵机图,并使用kubernetes数据库操作符自动为数据库创建凭据。
我真的不明白这怎么可能。
我在operatorhub中找到了这个operator: https://operatorhub.io/operator/postgresql-operator-dev4devs-com
这是postgreSQL的操作符。上面提到:
- 允许您设置操作符,以便在已经应用于集群的ConfigMap中获取其环境变量(用户,密码和数据库名称)所需的值。注意:为您的解决方案在整个集群中集中和共享此信息非常有用。此外,您还可以配置包含PostgreSQL数据库映像所需的每个EnvVar的每个configMap键。
如果有人有kubernetes操作符的经验,我可以得到一个提示,我应该使用哪个?(最简单的,不一定是Postgres)
我不太赞成除非必要,否则不写操作符,或者把它作为最后一个选项。
为了更容易理解,可以把它看作是有不同类型的操作符
- Helm-based操作符
- Ansible操作符
- Go, python其他基于语言的操作符
使用框架来操作符框架
你必须创建一个基于helm的操作符来监视一个秘密,如果被删除或不存在,它将为数据库创建一个新的。
步骤:
- 先安装Operator SDK
operator-sdk new db-operator --api-version=harsh.com/v1alpha1 --kind=DbSecret --type=helm --helm-chart=db-secret --helm-chart-repo=<repo url>
- 添加/编辑舵图YAML与DB秘密创建,因为你正在计划 <
- 考虑strong>: DbSecret作为值。
- 构建和部署操作符(Operator -sdk构建),它将监视configmap/secret,如果没有,它将创建它
您可能需要创建必要的服务帐户、角色和角色绑定。
创建helm操作符的Ref文档:https://sdk.operatorframework.io/docs/building-operators/helm/tutorial/