资源清单相当于剧本
什么是资源:
k8s中所有的内容都抽象为资源,资源实例化后,叫做对象。
1.K8S中的资源
集群资源分类
名称空间级别:
kubeadm k8s kube-system kubectl get pod -n default
工作负载型资源,(workload):Pod ReplicaSet,Deployment,StatefilSet,DaemonSet,Job,CronJob,(ReplicationController 在v1.11 版本被废弃)
服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):Service,Ingress,。。。
配置与存储型资源:Volume(存储卷),CSI(容器存储接口,可以扩展各种各样的第三方存储卷)
特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型),Secret(保存敏感数据),DownwardAPI(把外部环境中的信息输出给容器)
集群级别:
role
集群级资源:Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
元数据型资源,HPA,PodTemplate,LimitRange
元数据型:
HPA 通过指标进行操作
PodTemplate,LimitRange
2.资源清单
在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单。
简单说明
是一个可读性高,用来表达数据序列的格式。YAML的意思其实是:仍是一种标记语言。但为了强调这种语言一数据作为中心。而不是以标记语言为重点。
基本语法
缩进时不允许使用Tab键,只容许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。
#标识注释,从这个字符一直到行尾,都会被解释器忽略。
YAML支持的数据结构
对象:键值对的集合,又称为映射(mapping)、哈希(hashes)、字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence)、列表(list)
纯量(scalars):单个的,不可再分的值。
对象类型:对象的一组键值对,使用冒号结构表示。
name:steve
age:18
yaml也容许另一种写法。将所有键值对写成一个行内对象。
hash:{name:steve,age:18}
数组类型:一组连词线开头的行,构成一个数组。
animal
Cat
Dog
数组也可以采用行内表示法
animal:[Cat, Dog]
复合结构:对象和数组可以结合使用,形成复合结构。
1languages:
2.Ruby
纯量
字符串
3.常用字段解释说明
必须存在的属性
4.容器生命周期
Init容器:
Pod能够具有多个容器,应用运行在容器里面,但是他也可能有一个或多个先于应用容器启动的Init
容器。
Init容器与普通的容器非常像,除了如下两点
Init容器总是运行到成功完成为止。
每个Init容器都必须在下一个Init容器启动之前成功完成。
如果Pod的Init容器失败。Kubernetes会不断的重启该Pod,直到Init容器成功为止。然而。
如果Pod对应的restartPolicy为Never,它不会重新启动。
init容器的作用:
因为Init容器具有与应用程序容器