库伯内特斯工作库伯内特斯对象代表集群的状态,并会告知 库伯内特斯您希望工作负载进入何种状态。
在创建并定义了对象后,库伯内特斯会确保该对象始终存在。
控制器(财务总监)Kubernetes对象的状态,并会作出变更,使集群从当前状态转变为所需状态。
开发人员或系统管理员利用提交到 Kubernetes API亚马尔或JSON格式文件来指定定义的状态。库伯内特斯使用控制器来分析新定义的状态和集群中实际状态之间的差别。
库伯内特斯集群的预期状态定义了应运行哪些应用或其他工作负载、应使用哪些容器镜像、应提供哪些资源,以及其他配置详情。
配置数据以及有关集群状态的信息位于 etcd(etcd)(一个键值存储数据库)中。etcd(etcd)采用分布式、容错设计,被视为集群的最终事实来源。
库伯内特斯会自动管理您的集群,以匹配预期状态。为此,控制器通常发送消息到 美国石油学会服务器以产生所需的更改,一些 库伯内特斯资源还有内置的控制器。
我们举个例子来说明 库伯内特斯如何管理预期状态。假设您要部署一个预期状态为"3"的应用,这意味着要运行该应用的 3 个副本。
如果这些容器中有 库伯内特斯副本集就会看到只有 2个副本在运行,所以它会再添加 1个副本以满足预期状态。
副本集是一种控制器,可确保在特定时间运行指定数量的容器集。
库伯内特斯部署是管理副本集的首选方式,可以向容器集提供声明性更新,因此您不必自己来手动管理它们。
您也可以使用 库伯内特斯中的自动扩展功能,来基于用户需求管理服务的扩展。在指定应用或服务的预期状态时,您还可以让控制器随着需求增加而提供额外的容器集。
例如,在繁忙时段,应用的预期状态可能会增加到 10个副本,而不是平常的 3 个。