基本理解
在 Kubernetes 系统中,Kubernetes 对象是持久化的实体。Kubernetes 使用这些实体去表示整个集群的状态。 比较特别地是,它们描述了如下信息:
- 哪些容器化应用正在运行(以及在哪些节点上运行)。
- 可以被应用使用的资源。
- 关于应用运行时表现的策略,比如重启策略、升级策略以及容错策略。
k8s一旦创建对象,将不断确保该对象存在。 通过创建对象,你就是在告知 Kubernetes 系统,你想要的集群工作负载状态看起来应是什么样子的, 这就是 Kubernetes 集群所谓的期望状态。
操作 k8s 对象需要使用 Kubernetes API。
对象规约(Spec)与状态(Status)
每一个 Kubernetes 对象包含两个字段,它们负责管理对象的配置:
- 对象规约 Spec:期望状态,在创建对象时必须设置的内容。
- 对象状态 Status:当前状态,由 Kubernetes 系统和组件设置并更新的。
如一个对象需要启动 3 个副本,那么酒吧这个对象 Spec 设置为 3,当前副本数量就是 Status。Kubernetes 控制面会根据 Spec 和 Staus 来新增或者删除副本的数量。
描述 Kubernetes 对象
在创建 k8s 对象是,需要描述对象的基本信息,通过 yaml 文件来提供描述 Kubernetes 对象的信息。
一个 Kubernetes Deployment 对象的描述信息如下:
1 | apiVersion: apps/v1 |
必须字段
在 yaml 文件中,有以下必须的字段:
- apiVersion:创建该对象所使用的 Kubernetes API 的版本。
- kind:创建对象的类别。
- metadata:帮助唯一标识对象的一些数据,包括一个 name、UID 和可选的 namespace。
- spec:规约,期望的状态。