Kubernetes 扩展与无服务器函数实践
1. 为自有应用构建 Operator
构建自有 Operator 主要有两个原因:一是针对具有复杂操作需求的应用;二是针对作为服务安装在多个项目中的常用组件。以待办应用的 Operator 为例,它可能具备自定义升级逻辑,如将服务更新以引导流量至“维护中”页面,或者等待消息队列清空后备份数据库。任何具有可自动化日常操作任务的应用,都可能适合使用自定义 Operator。
构建自有 Operator 并非易事,因为它涉及多种自定义资源类型和多个自定义控制器。其复杂性在于规划所有可能的场景,不仅要考虑 Operator 自身的工作流程,还要处理人为操作可能带来的干扰。
下面以 web - ping 应用的 Operator 为例进行说明:
1.1 部署 web - ping Operator
可以使用 YAML 清单部署 web - ping Operator,具体步骤如下:
# 部署 RBAC 规则和 Operator
kubectl apply -f web - ping/operator/
# 等待其运行
kubectl wait --for = condition = ContainersReady pod -l app = web - ping - operator
# 打印安装容器的日志
kubectl logs -l app = web - ping - operator -c installer
# 列出新的 CRD
kubectl get crd -l operator --show - label