Kubernetes 使用调节循环来持续确保系统的当前状态与用户定义的理想状态相匹配。这种机制是 Kubernetes 运行的基础,使其能够保持所需的配置,并自动纠正任何差异。


下面的代码演示了如何在 Kubernetes 中定义一个简单的部署,Kubernetes 将通过其调节循环对其进行管理。

[代码清单]

apiVersion: apps/v1
kind: Deployment
metadata:
 name: example-deployment
spec:
 replicas: 3
 selector:
  matchLabels:
   app: example
 template:
  metadata:
   labels:
     app: example
  spec:
   containers:
   - name: example-container
     image: nginx:latest

[执行结果]

使用 “kubectl apply -f deployment.yaml ”命令应用该部署配置后,Kubernetes 将按照指定的方式创建并维护 3 个 nginx 容器副本。

在本例中,部署对象定义了应用程序的理想状态。Kubernetes 会持续监控应用程序的实际状态(例如运行 pod 的数量),并将其与理想状态(3 个副本)进行比较。如果任何 pod 出现故障或被删除,Kubernetes 会自动创建一个新 pod,以确保维持所需的副本数量。这个过程称为调和。

调和循环持续运行,根据所需的状态检查系统状态,并在必要时做出调整。这是 Kubernetes 的一项强大功能,有助于确保应用程序的高可用性和可靠性。

[小知识]

调和循环是 Kubernetes 中的一个关键概念,它不仅限于部署,还用于状态集、守护进程集等其他资源。

Kubernetes 中的控制器管理器负责管理这些调和循环,确保实现并保持所需的状态。

了解调和对于故障诊断和优化 Kubernetes 应用程序至关重要,因为它能帮助你掌握 Kubernetes 如何对变化和故障做出反应。