服务的分类
有状态
- 代表应用
- nginx
- apache
- 优点
- 对客户端透明,无依赖关系,可以高效实现扩容,迁移
- 缺点
- 不能存储数据,需要额外的数据服务支撑
无状态
- 代表应用
- MYSQL
- Redis
- 优点
- 可以独立存储数据,实现数据管理
- 缺点
- 集群环境下需要实现主从,数据同步,备份,水平扩容负载。
资源和对象
资源等于类,对象等于通过类创建出来的对象
kubernetes中的所有内容都被抽象为“资源”,如pod,service,node等都是资源。
“对象”就是“资源”的实例,是持久化的实体。如某个具体的pod,某个具体的node。kubernetes使用这些实体去表示整个集群的状态。
对象的创建,删除,修改都是通过kubernetes的API接口实现的。这些是“restful”风格的api,与k8s的万物皆对象的思想对应。命令行工具“kubectl”,实际上也是调用kubernetes的api接口。
k8s中资源的类型有很多种,kubectl可以通过配置文件来创建。这些“对象”,配置文件更像是描述对象“属性”的文件,配置文件格式可以是“json”或“yaml”,常用“yaml”。
对象规约和状态
规约
规约(spec),规格的意思,spec是必需的,它描述了对象的期望状态(Desired State) —— 希望对象所具有的特征,当创建对象时,必须提供对象的规约,用来描述该对象的期望状态,以及关于对象的一些基本信息。
状态
表示对象的实际状态,该属性由k8s自己维护,