Kubernetes对象也被称为资源,就是Kubernetes集群中的各种可持久化实体,如Deployment,Pod,Service等。
从Kubernetes集群的角度,任何Kubernetes对象都有如下两个侧面:
- spec,表示Kubernetes对象期望的状态,往往通过YAML配置文件给出
- status,表示Kubernetes对象在当前集群中实际的状态,往往通过资源的Controller控制
事实上,Kubernetes集群的状态,就是通过大量Kubernetes对象的status表示出来的。
首先通过YAML文件定义Kubernetes对象的期望状态,然后调用Kubernetes API,将YAML文件作为参数交给Kubernetes集群,Kubernetes集群根据YAML文件创建必要的Kubernetes对象,以满足spec的期望。此后,Kubernetes的Master通过各种Controllers保证Kubernetes对象的status与spec一致。
1. Kubernetes Workload对象
1) Deployment
一个Deployment就是Kubernetes中运行着的一个应用,可能由一个或多个Pods组成,其中的每个Pod就是一个应用副本。
通过Deployment,一个应用可以被安装部署多次,每次部署都在Nodes上生成一定数量的应用实例。即一个应用可以有多个应用实例,每个应用实例有一个唯一的名字。
通过Deployment,可以实现应用的滚动升级,逐步替换容器镜像。
2) Pod
Pod是Kubernetes集群负责创建、管理的,可部署的、可水平扩展的、可创建副本的最