我对Kubernetes有点陌生,我想知道etcd集群持有哪种类型的配置/状态/元数据文件?没有找到任何相关的例子。只是一般的解释。
谢谢:)
etcd集群持有哪种类型的配置/状态/元数据文件?
Etcd是Kubernetes的数据库,所以它基本上存储了集群中所有的配置/状态/元数据。
Kubernetes是如何工作的
Kubernetes是一个最终的一致性系统。
- 当你想在集群中创建一些东西时,你保存配置为你的所需状态-你想要达到的状态。 Kubernetes有控制器,定期(或更改)检查期望状态存储,然后检查当前状态-如果存在不匹配,控制器将尝试使其达到期望状态。
示例
集群中没有应用程序。现在,您想要部署您创建的应用程序。
- 你在集群中创建一个带有应用程序映像的部署清单。
- 集群中的控制器将检测到你想要的,它也会看到应用不在集群中。控制器现在必须达到你所要求的状态,例如通过调度实例到节点,节点然后需要从注册表中提取图像,然后启动应用程序(Pod)。
- 控制器持续保持所需状态。如果你的应用崩溃了,控制器需要再次工作以达到所需的状态,并创建一个新的实例(Pod)。
etcd中的资源
在上面的示例中,您创建了一个资源,即存储在etcd中的Deployment
。但是,所有的控制器也创建资源,例如,当您创建Deployment
时,ReplicaSet
和Pod
。
关注分离
当您创建Deployment
-manifest时,您编写了一些元数据,然后是spec:
-这是所需的状态。控制器在status:
中写入其状态,您可以使用例如kubectl get deployment my-app -o yaml
来检查此状态,您将看到控制器是否写了任何问题或条件是Running。