k8s API简介
2020-03-29 本文已影响0人
hyperjiang
概述
我们知道用kubectl
管理k8s
的时候可以使用yaml
文件,在这些配置文件的定义里面会有一个apiVersion
字段,这个字段指明了要使用的API版本,最新的k8s
API版本是v1.18.0,地址:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18
里面可以看到对于Deployment
资源,它对应的分组是apps
,版本是v1
,所以我们的yaml
文件里面就需要这样写:apiVersion: apps/v1
;对于Namespace
资源,它对应的分组是core
,版本是v1
,core
是可以省略的,所以我们的yaml
文件里面可以这样写:apiVersion: v1
资源对象
资源对象通常有3个组成部分:
-
metadata
:这是关于资源的元数据,比如它的名称、类型、api版本、注释和标签。 -
spec
:这是由用户定义的希望系统最终达到的状态,比如启动多少个replica、cpu和内存的限制等等。 -
status
:系统的当前状态,由服务器去更新。
资源的操作
资源通常有这几种操作:创建(Create
),更新(Update
),读取(Read
),删除(Delete
)。其中更新又分为替换(Replace
)和打补丁(Patch
),区别是替换是把整个spec
替换掉,会有乐观锁保证读写安全;打补丁则是修改某些指定的字段,没有锁,最后一次写会成功。
有部分资源还会支持下列操作:
-
Rollback
: 将PodTemplate回滚到以前的版本。 -
Read / Write Scale
: 读取或更新资源的副本数量。 -
Read / Write Status
: 读取或更新资源对象的状态。