Overview
云原生开发是指基于 Kubernetes 生态扩展其能力的开发方向,核心是利用 Kubernetes 的扩展机制(Controller、Webhook、Scheduler 等)开发自定义组件,使集群能够感知和管理业务特有的资源或行为。
开发方向
Controller / Operator
Controller 是云原生开发最核心的模式。其核心思想是控制循环(Reconciliation Loop):持续对比资源的期望状态(Spec)与实际状态(Status),驱动二者收敛。
- Controller:监听已有 K8s 资源(Pod、Endpoints、Node 等)的变化,执行相应业务逻辑。例如 external-dns 监听 Service / Ingress 变化,自动将域名记录同步到 Route53、Cloudflare 等 DNS 服务商。
- Operator:在 Controller 基础上引入自定义资源(CRD),将应用的运维知识编码进 Controller 中。例如管理 MySQL 集群的生命周期、备份、故障转移等。