所以我在这里 并排有部署和服务配置文件的示例,所以第一件事是kubernetes 中的每个配置文件都包含三个部分,第一部分是您正在创建的组件的元数据所在的位置,其中一个元数据显然是名称 组件 本身的配置文件中的第二部分是规范,因此每个组件的配置文件都有一个规范,您基本上可以在其中放置要应用于该组件的每种配置,如您所见,这里的前两行只是声明什么 你想在这里创建我们正在创建部署,在这里我们正在创建一个服务,这基本上是你必须查找每个组件都有不同的 api 版本所以现在在规范部分内部显然属性将定于种类您正在创建的组件的一部分,因此部署将具有其自己的仅适用于部署的属性,并且该服务将具有其自己的东西,
但我说过配置文件分为三个部分,我们只看到元数据和规范,所以在哪里 第三部分所以第三部分将是一个状态,但它将由 kubernetes 自动生成和编辑
工作方式是 kubernetes 将始终比较所需状态和实际状态或该组件的状态以及 如果状态和所需状态不匹配,那kubernetes 知道那里有一些东西需要修复,所以它会尝试修复它,这是kubernetes 提供的自我修复功能的基础,例如在这里你指定你想要 nginx 的两个副本deployment 所以当你实际使用这个配置文件创建部署时应用它,这 不断更新该状态,例如,如果状态在某个时候只会说一个副本 正在运行然后kubernetes 将将该状态与规范进行比较,我们将知道有一个问题需要创建另一个副本sap
现在另一个有趣的问题是kubernetes 实际上从哪里获取状态数据以自动添加到此处或连续更新 信息来自 icd 记住集群大脑是实际存储集群数据的主进程之一,因此它 etcd 随时保存任何 kubernetes 组件的当前状态,这就是状态信息.