k8s deployment文件属性简介
1 | apiVersion: apps/v1 #指定api版本,此值必须在k8s api-versions中 |
关于metadata和template.metadata
metadata和template.metadata是两个不同的属性:
- metadata: 描述该资源自身的元数据,如名称、namespace、标签等信息。这些信息描述和标识该资源对象本身。
- template.metadata: 在模板化资源(如Deployment、Job等)中,template表示该资源所管理的子资源模板(如Pod模板),template.metadata则是模板子资源自己的元数据信息,如Pod的名称、标签等。
含义区分
区别概括:
- metadata: 描述资源自身的元数据
- template.metadata: 描述资源将要创建的子资源的元数据
举个例子,在Deployment资源中:
- metadata表示该Deployment的名称、标签等标识信息
- template.metadata表示该Deployment将要创建的Pod的名称、标签等信息
属性定义
metadata中必须定义name
如果没有显式定义template.metadata.name,k8s会默认将Pod的名称设置为
<deployment-name>-<random-string>但要注意其他对象如Job就必须显式定义template.metadata.name才会创建成功
template.metadata下必须定义label,spec.selector.matchLabels会在创建的时候去找template.metadata下指定的label
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
