etcd 在 kubernetes 中保存的文件示例?

examples of files that etcd holds in kubernetes?

我是 Kubernetes 的新手,我想知道 etcd 集群持有哪种 configuration/state/metadata 文件? 没有找到任何例子。只是一般性的解释。

谢谢:)

which kind of configuration/state/metadata files etcd cluster holds?

Etcd 是 Kubernetes 的数据库,因此它实际上存储了集群中的所有 configuration/state/metadata。

Kubernetes 的工作原理

Kubernetes 是一个最终一致性系统。

  1. 当你想在集群中创建一些东西时,你将配置保存在你的期望状态 - 你想要的状态实现。
  2. Kubernetes 有控制器,定期(或更改时)检查存储的期望状态,然后检查当前状态 - 如果存在不匹配,控制器将尝试使其达到 期望状态

例子

集群中没有应用程序。现在您想部署您创建的应用程序。

  1. 您使用应用程序的图像在集群中创建了一个 Deployment-manifest。
  2. 集群中的控制器会检测到您想要的内容,它还会看到该应用程序不在集群中。控制器现在必须达到您要求的状态,例如将实例调度到节点,然后节点需要从注册表中拉取镜像,然后启动应用程序 (Pod)。
  3. 控制器持续保持期望的状态。如果您的应用程序崩溃,控制器需要再次工作以达到期望状态,并创建一个新实例 (Pod)。

etcd 中的资源

在上面的示例中,您创建了一个资源,一个存储在 etcd 中的 Deployment。但所有控制器也创建资源,例如ReplicaSetPod 当您创建 Deployment.

关注分离

当您创建 Deployment-manifest 时,您写了一些 元数据 然后 spec: - 这是 期望的状态。控制器在 status: 中写入其状态,您可以使用例如检查它。 kubectl get deployment my-app -o yaml 你会看到控制器是否写了任何问题或者 条件运行.