kubernetes概念 - Kubernetes Pod控制器
Kubernetes资源清单 类别 名称 工作负载型资源(workload) 运行应用程序,对外提供服务:Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、Cronjob (ReplicationController在v1.11版本被废弃) 服务发现及负载均衡 service、Ingress 配置与存储 Volume、CSI(容器存储接口 特殊类型存储卷 ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器) 集群级资源 Namespace、Node、Role、ClusterRole、RoleBinding(角色绑定)、ClusterRoleBinding(集群角色绑定) 元数据型资源 HPA、PodTemplate(Pod模板,用于让控制器创建Pod时使用的模板)、LimitRange(用来定义硬件资源限制的) Kubernetes配置清单使用说明 在Kubernetes中创建资源时,除了命令式创建方式,还可以使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单。资源清单由很多属性或字段所组成。 以yawl格式输出pod的详细信息。 资源清单格式 yaml 1 kubectl get pod clients -o yaml Pod资源清单常用字段讲解 在创建资源时,apiserver仅接收JSON格式的资源定义。在使用kubectl run命令时,自动将给定内容转换成JSON格式。yaml格式提供配置清单,apiserver可自动将其转为JSON格式,(yaml可无损转为json),而后再提交。使用资源配置请清单可带来复用效果。 Pod资源配置清单由五个一级字段组成,通过kubectl create -f yamlfile就可以创建一个Pod apiVersion: 说明对应的对象属于Kubernetes的哪一个API群组名称和版本。给定apiVersion时由两部分组成group/version,group如果省略表示core(核心组)之意。使用kubectl api-versions获得当前系统所支持的apiserver版本。alpha 内测版、beta 公测版、stable 稳定版 kind: 资源类别,用来指明哪种资源用来初始化成资源对象时使用。 metadata: 元数据,内部嵌套很多2级、3级字段。主要提供以下几个字段。 name,在同一类别当中name必须是唯一的。 namespace 对应的对象属于哪个名称空间,name受限于namespace,不同的namespace中name可以重名。 lables key-value数据,对于key名称及value,最多为63个字符,value,可为空。填写时只能使用字母、数字、_、-、.,只能以字母或数字开头及结尾。 annotations 资源注解。与label不同的地方在于,它不能用于挑选资源对象,仅用于为对象提供“元数据”。对键值长度没有要求。在构建大型镜像时通常会用其标记对应的资源对象的元数据 spec: specification,定义接下来创建的资源对象应该满足的规范(期望的状态 disired state)。spec是用户定义的。不同的资源类型,其所需要嵌套的字段各不相同。如果某一字段属性标记为required表示为必选字段,剩余的都为可选字段,系统会赋予其默认值。如果某一字段标记为Cannot be updated,则表示为对象一旦创建后不能改变字段值。可使用kubectl explain pods.spec查看详情。 containers [required]object list name [string] 定义容器名称 image [string] 启动Pod内嵌容器时所使用的镜像。可是顶级、私有、第三方仓库镜像。 imagePulLPolicy [string] 镜像获取的策略,可选参数Always(总是从仓库下载,无论本地有无此镜像)、Never(从不下载,无论本地有无此镜像)、IfNotPresent(本地存在则使用,不存在则从仓库拉去镜像)。如果tag设置为latest,默认值则为Always,非latest标签,默认值都为IfNotPresent。...