序:
    pod作为kubernetes中最小的调度单元,一个pod中可以有多个容器,也可以理解为pod为一组容器的集合,pod中的容器共享网络命名空间

    • pod常用的yaml格式定义配置文件说明

      1. apiVersion: v1 #必选,api版本号
      2. kind: Pod #必选,资源对象名称
      3. metadata: #b必选,元数据 map类型
      4. name: <your-pod-name> #必选,pod名称
      5. namespace: <your-pod-namespace> #默认default,pod所属的命名空间
      6. labels:
      7. name: <your-labes-name> #自定义的pod标签
      8. spec: #必选,pod中container的详细属性
      9. containers: #必选,pod中容器列表,list类型
      10. - name: <your-container-name> #必选,容器名称
      11. image: <your-container-name> #必选,容器镜像
      12. imagePullPolicy: {Always | Never | IfNotPresent} #Always表示下载镜像,Never表示本地镜像,IfNotPresent表示优先使用本地镜像,否则下载
      13. volumeMounts:
      14. - name: <your-pod-volume-name> #引用pod定义的共享存储卷名
      15. mountPath: <your-path> #存储卷在容器内Mount的绝对路径
      16. ports: #容器需要暴露的端口列表
      17. - name: <your-port-name> #需要暴露的端口名称
      18. containerPort: <your-container-port> #容器需要监听的端口
      19. env: #容器运行前 需要设置的环境变量列表
      20. - name: <your-env-name> #环境变量的名称
      21. value: <your-env-value> #环境变量的值
      22. livenessProbe: #对容器进行健康检查
      23. tcpSocket: # 对Pod容器内检查方式设置为tcpSocket方式
      24. port: <your-container-port> #需要健康检查的端口
      25. initialDelaySeconds: 15 #容器启动十五秒开始发起第一次探针
      26. periodSeconds: 20 #每隔二十秒进行探针一次
      27. readinessProbe:
      28. tcpSocket:
      29. port: <your-container-port> #需要健康检查的端口
      30. initialDelaySeconds: 5 #容器启动五秒开始发起第一次探针
      31. periodSeconds: 10 #每隔十秒进行探针一次
      32. nodeSelector: #NodeSelector表示将该Pod调度到包含这个label的node上
      33. hostname: k8snode-1 # 调度到指定的标签Node上
      34. volumes:
      35. - name: <your-volume-name> #共享存储卷名称
      36. emptyDir: { } # 类型为emptyDir的存储卷,与Pod同生命周期的一个临时目录,为空值
      37. hostpath: # 类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
      38. path: <your-host-path> # Pod所在宿主机的目录,将被用于同期中Mount的目录

      以上yaml文件包含:

    • livenessProbe和readinessProbe两个容器健康检查的探针(tcpsocket方式)

    • hostpath方式的文件挂载类似于docker的 -v
    • 调度pod到指定节点
    • 容器运行前需要设置的环境变量