k8s的yaml文件配置详解

 1 apiVersion: v1             #指定api版本,此值必须在kubectl apiversion中  
 2 kind: Pod                  #指定创建资源的角色/类型  
 3 metadata:                  #资源的元数据/属性  
 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         #设置自定义注解名字  
11 spec:                      #设置该资源的内容  
12   restartPolicy: Always    #表示自动重启,一直都会有这个容器运行
13   nodeSelector:            #选择node节点14     zone: node1  
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: volume           #定义一个挂载设备的名字  
70     #meptyDir: {}  
71     hostPath:  
72       path: /opt           #挂载设备类型为hostPath,路径为宿主机下的/opt

 

posted @ 2018-12-03 15:29  盈波秋水泛清涛  阅读(17064)  评论(1编辑  收藏  举报