当前位置:   article > 正文

Linux:kubernetes(k8s)prestop事件的使用(11)

Linux:kubernetes(k8s)prestop事件的使用(11)

他的作用是在结束pod容器之后进行的操作


  1. apiVersion: v1 # api文档版本
  2. kind: Pod # 资源对象类型
  3. metadata: # pod相关的元数据,用于描述pod的数据
  4. name: nginx-po # pod名称
  5. labels: # pod的标签
  6. type: app #这个是随便写的 自定义的标签
  7. version: 1.0.0 #这个是随便写的
  8. namespace: 'default' #命名空间的配置
  9. spec: #期望pod按照这里面的描述进行创建
  10. containers: #对于pod容器的描述
  11. - name: nginx #容器的名称
  12. image: nginx:1.7.9 # 指定容器的镜像
  13. imagePullPolicy: IfNotPresent #镜像拉取策略
  14. lifecycle: # 生命周期配置
  15. postStart:
  16. exec:
  17. command:
  18. - sh
  19. - -c
  20. - "echo 'pre stop' > /usr/share/nginx/html/prestop.html"
  21. preStop:
  22. exec:
  23. command:
  24. - sh
  25. - -c
  26. - "sleep 50 ; echo 'sleep finished...' >> /usr/share/nginx/html/prestop.html"
  27. command: # 指定容器启动时执行的命令
  28. - nginx
  29. - -g
  30. - 'daemon off;'
  31. workingDir: /usr/local/nginx/html # 定义容器启动后的工作目录
  32. ports:
  33. - name: http # 端口名称
  34. containerPort: 80 # 描述容器内容要暴露的端口
  35. protocol: TCP # 端口是用什么协议通信
  36. env: # 环境变量
  37. - name: JVM_OPTS # 环境变量的名称
  38. value: '-Xms128m -Xmx128m' # 环境变量的值
  39. resources:
  40. requests: # 最少需要多少资源
  41. cpu: 100m #限制cpu最少使用 1000m=1核心 100m就是0.1个核心
  42. memory: 128Mi #限制内存最少使用129兆
  43. limits: #最多可以用多少
  44. cpu: 200m # 限制最多可以使用多少
  45. memory: 256Mi
  46. restartPolicy: OnFailure #重启策略,只有失败的情况才会重启

将这yaml文件运行起来 

开始的时候写入一段  pre stop 结束的时候先休眠50秒 再写入一个 sleep …… 

可以看到已经写入了,


查看效果

现在我们左边右边都开一个终端,右边持续监听从而持续查看他的一个状态

kubectl get po -w

当我们删除pod的时候默认他是缓30秒后才删除的,这是归功于terminationGracePeriodSeconds: 30

我没写所以他默认是30秒,如果想改成别的时间,可以直接把他加上并且改后面的数值

我来测试一下他

可以看到就是30秒(多个1秒2秒问题也不大)

现在我把 terminationGracePeriodSeconds: 30加上  时间改成40秒,让后再去生成一个容器

发现就是40秒左右了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/247417
推荐阅读
相关标签
  

闽ICP备14008679号