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

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