k8s的pod.yaml文件配置详解

 1apiVersion: v1             #指定api版本,此值必须在kubectl apiversion中  
 2kind: Pod                  #指定创建资源的角色/类型  
 3metadata:                  #资源的元数据/属性  
 4  name: django-pod         #资源的名字,在同一个namespace中必须唯一  
 5  labels:                  #设定资源的标签,使这个标签在service网络中备案,以便被获知
 6    k8s-app: django
 7    version: v1  
 8    kubernetes.io/cluster-service: "true"  
 9  annotations:             #设置自定义注解列表  
10    - name: String         #设置自定义注解名字  
11spec:                      #设置该资源的内容  
12  restartPolicy: Always    #表示自动重启,一直都会有这个容器运行
13  nodeSelector:            #选择node节点14     zone: node1 
14  enableServiceLinks: true #是否将服务信息注入到pod的环境变量中,默认为true
15  containers:  
16  - name: django-pod        #容器的名字  
17    image: django:v1.1      #容器使用的镜像地址  
18    imagePullPolicy: Never #三个选择Always、Never、IfNotPresent,每次启动时检查和更新(从registery)images的策略,
19                           # Always,每次都检查
20                           # Never,每次都不检查(不管本地是否有)
21                           # IfNotPresent,如果本地有就不检查,如果没有就拉取
22    command: ['sh']        #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT  
23    args: ["$(str)"]       #启动容器的命令参数,对应Dockerfile中CMD参数  
24    env:                   #指定容器中的环境变量  
25    - name: str            #变量的名字  
26      value: "/etc/run.sh" #变量的值  
27    resources:             #资源管理
28      requests:            #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行  
29        cpu: 0.1           #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m)
30        memory: 32Mi       #内存使用量  
31      limits:              #资源限制  
32        cpu: 0.5  
33        memory: 32Mi  
34    ports:  
35    - containerPort: 8080    #容器开发对外的端口
36      name: uwsgi          #名称
37      protocol: TCP  
38    livenessProbe:         #pod内容器健康检查的设置
39      httpGet:             #通过httpget检查健康,返回200-399之间,则认为容器正常  
40        path: /            #URI地址  
41        port: 8080  
42        #host: 127.0.0.1   #主机地址  
43        scheme: HTTP  
44      initialDelaySeconds: 180 #表明第一次检测在容器启动后多长时间后开始  
45      timeoutSeconds: 5    #检测的超时时间  
46      periodSeconds: 15    #检查间隔时间  
47      #也可以用这种方法  
48      #exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常  
49      #  command:  
50      #    - cat  
51      #    - /tmp/health  
52      #也可以用这种方法  
53      #tcpSocket: //通过tcpSocket检查健康   
54      #  port: number   
55    lifecycle:             #生命周期管理(钩子)  
56      postStart:           #容器运行之前运行的任务  
57        exec:  
58          command:  
59            - 'sh'  
60            - 'yum upgrade -y'  
61      preStop:             #容器关闭之前运行的任务  
62        exec:  
63          command: ['service httpd stop']  
64    volumeMounts:          #挂载设置
65    - name: volume         #挂载设备的名字,与volumes[*].name 需要对应    
66      mountPath: /data     #挂载到容器的某个路径下  
67      readOnly: True  
68  volumes:                 #定义一组挂载设备  
69  - name: cache-volume
70    emptyDir:              #在 Pod 被删除时也会一起被删除
71      sizeLimit: 500Mi
72  - name: volume           #定义一个挂载设备的名字  
73    hostPath: 
74      type: Directory      # 此字段为可选
75      path: /opt           #挂载设备类型为hostPath,路径为宿主机下的/opt
76      

发布日期:2023-03-07 23:50 字数:262 用时 2分钟
tags:k8s 云原生