k8s API简介

概述

我们知道用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,版本是v1core是可以省略的,所以我们的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: 读取或更新资源对象的状态。

你可能感兴趣的:(k8s API简介)