文章目录
概念
-
资源含义:k8s中所有的内容都被抽象为资源,资源实例化之后,叫做对象。
-
资源分类:
- 工作负载:pod、rs(ReplicasSet)、deploy(Deployment)、sts(StatefulSet)、ds(DaemonSet)、job、cronjob
- 服务发现及负载均衡:svc(Service)、ing(Ingress)
- 配置与存储:cm(ConfigMap)、Secret、Volume、pv( persistentvolumes )、pvc、sc(StorageClasses)DownwardAPI
- 集群级: ns(Namespace),Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
- 元数据: HPA,PodTemplate,LimitRange
-
资源清单:k8s一般都是通过定义资源清单的方式去创建资源,资源清单类似提前写好的配置文件,通过文件信息告知k8s如何进行配置,一般使用yaml格式的文件来创建符合我们预期期望的资源,这样的yaml文件我们一般称为资源清单
-
资源清单基础格式:
apiVersion: group/apiversion #如果没有给定group名称,那么默认为croe,可以使用kubectl api-versions 获取当前k8s版本上所有的apiVersion版本信息(每个版本可能不同)
kind: #资源类型
metadata: #元数据对象
spec: #期望的状态(disired state)
status: #当前状态,本字段有kubernetes自身维护,用户不能去定义
#获取 apiversion 版本信息 kubectl api-versions
#获取字段设置帮助文档 kubectl explain pod|deploy...,可以通过explain查看各种资源
#apiVersion、kind、metatdata、spec、status,可用过kubectl explain pod.kind方式查询下级信息
POD资源清单对象信息
帮助信息格式
apiVersion <string> #表示字符串类型
metadata <Object> #表示需要嵌套多层字段
labels <map[string]string> #表示由k:v组成的映射
finalizers <[]string> #表示字串列表
ownerReferences <[]Object> #表示对象列表,如hostPID <boolean>,布尔值ture|false
#布尔类型priority <integer>
#整型name <string> -required-
#如果类型后面接 -required-,表示为必填字段
pod.metadata(元数据):
metadata: <Object> #元数据
annotations <map[string]string>
#注释,可以作为挑选条件,作为labels的补充
key1: value1
key2: value2
clusterName <string>
#对象所属的集群的名称。用来区分不同集群中具有相同名称和名称空间的资源。
creationTimestamp <string>
#当前对象创建日期的时间戳
deletionGracePeriodSeconds <integer>
#在从系统中删除该对象之前,对象被正常终止所允许的秒数。仅在还设置了deleteTimestamp时设置
deletionTimestamp <string>
#当前对象删除日期的时间戳
generation <integer>
#用于表示当前对象目标状态的代码
labels <map[string]string>
key1: value1
key2: value2
name <string>
#对象名称,名称空间的同一类型中必须唯一
namespace <string>
#命名空间,默认为default
resourceVersion <string>
#当前对象的内部版本标识符
uid <string>
#唯一表示符
pod.spec
spec: <Object> #必选,pod中容器的详细定义
containers: <[]Object> -required- #pod中的容器列表,可以有多个容器
- name: <string> -required- #容器名称
image: <string> -required- #容器的镜像名称
imagePullPolicy: <string> (Always, Never, IfNotPresent) #获取镜像的策略,Alawys表示下载镜像 IfnotPrese