Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践
K8s Native Application; Operator = CRD + control loop, i.e, Declaretive API + Automation; kubebuilder + controller-runtime + helm Operator Capability Levels Installation of the workload • Operator stale cache 下能保证 operator 的正确性,前提是 operator 要收到所有对象的事件。 Operator 最佳实践 第三部分 Operator 开发常见概念关系 Kubebuilder 框架模型 Setup 阶段接口 // For defines the type of Object being *reconciled*, and configures the ControllerManagedBy 表达式运行定时任务的对象叫 CronJob,本次实验会用 Kubebuilder 构建一个 Operator,重新实现 CronJob 的 功能(实验链接)。本次实验目标: 1. 通过实验,对 Operator 有一个真实体感,加深基础知识理解 2. 实验中覆盖 Kubebuilder 框架大部分功能特性,以便对 kubebuilder 有一个全面熟悉和了解 3. 实验以实现一个生产环境可用的0 码力 | 21 页 | 3.06 MB | 9 月前3Best practices for building Kubernetes Operators
https://www.cncf.io/blog/2022/06/15/kubernetes-operators-what-are-they-some-examples/Framework - Kubebuilder/Operator-sdkCapability Model https://operatorframework.io/operator-capabilities/Validation & DefaultingOpenAPI … ● Quantors for subschemas ○ allOf ○ oneOf ○ anyOf ○ notOpenAPI v3 schemas https://book.kubebuilder.io/reference/generating-crdValidation rules - Common Expression Language (CEL) ● Stable since (deployment, certs, build process) ● Validation webhooks is executed just after mutating webhook ● [Kubebuilder] As for now it’s not possible to write mutating and validating admission webhooks for non custom0 码力 | 36 页 | 2.19 MB | 5 月前3sealos 以 kubernetes 为内核的云操作系统
Sealos 绝大多数能力通过 CRD 扩展,以保持与 kubernetes API 完全兼容。 可以复用 k8s API 的强大能力, 而且生态的各种 SDK 可以直 接使用。 推荐使用 kubebuilder 框架去生 成很多代码。 权限限制 禁止掉所有用户越权操作,如查看主机 namespace 共享主机端口,共享主机文件系统等操作 以保障多租户之间相互共享一个集群是安全的 User0 码力 | 29 页 | 7.64 MB | 9 月前3
共 3 条
- 1