当前位置: 首页 > news >正文

住房和城乡建设部网站标准下载企业网站制作收费

住房和城乡建设部网站标准下载,企业网站制作收费,手机网站开发需要哪些人,台州自助建站在线咨询Pod Hook 我们知道Pod是Kubernetes集群中的最小单元,而 Pod 是有容器组组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。 实际上 Kubernetes 为我们的容器提供了生命周期钩子的,就是我们说的Pod Hook&#xff0c…

Pod Hook

我们知道PodKubernetes集群中的最小单元,而 Pod 是有容器组组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。

实际上 Kubernetes 为我们的容器提供了生命周期钩子的,就是我们说的Pod Hook,Pod Hook 是由 kubelet 发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。我们可以同时为 Pod 中的所有容器都配置 hook。

Kubernetes 为我们提供了两种钩子函数:

  • PostStart:这个钩子在容器创建后立即执行。但是,并不能保证钩子将在容器ENTRYPOINT之前运行,因为没有参数传递给处理程序。主要用于资源部署、环境准备等。不过需要注意的是如果钩子花费太长时间以至于不能运行或者挂起, 容器将不能达到running状态。
  • PreStop:这个钩子在容器终止之前立即被调用。它是阻塞的,意味着它是同步的, 所以它必须在删除容器的调用发出之前完成。主要用于优雅关闭应用程序、通知其他系统等。如果钩子在执行期间挂起, Pod阶段将停留在running状态并且永不会达到failed状态。

如果PostStart或者PreStop钩子失败, 它会杀死容器。所以我们应该让钩子函数尽可能的轻量。当然有些情况下,长时间运行命令是合理的, 比如在停止容器之前预先保存状态。

另外我们有两种方式来实现上面的钩子函数:

  • Exec - 用于执行一段特定的命令,不过要注意的是该命令消耗的资源会被计入容器。
  • HTTP - 对容器上的特定的端点执行HTTP请求。

示例1: 环境准备

以下示例中,定义了一个Nginx Pod,其中设置了PostStart钩子函数,即在容器创建成功后,写入一句话到/usr/share/message文件中。

apiVersion: v1
kind: Pod
metadata:name: hook-demo1
spec:containers:- name: hook-demo1image: nginxlifecycle:postStart:exec:command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]

示例2: 优雅删除资源对象

当用户请求删除含有 pod 的资源对象时(如Deployment等),K8S 为了让应用程序优雅关闭(即让应用程序完成正在处理的请求后,再关闭软件),K8S提供两种信息通知:

  • 默认:K8S 通知 node 执行docker stop命令,docker 会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,如果等待时间达到设定的超时时间,或者默认超时时间(30s),会继续发送SIGKILL的系统信号强行 kill 掉进程。
  • 使用 pod 生命周期(利用PreStop回调函数),它执行在发送终止信号之前。

默认所有的优雅退出时间都在30秒内。kubectl delete 命令支持 --grace-period=<seconds>选项,这个选项允许用户用他们自己指定的值覆盖默认值。值’0’代表 强制删除 pod. 在 kubectl 1.5 及以上的版本里,执行强制删除时必须同时指定 --force --grace-period=0

强制删除一个 pod 是从集群状态还有 etcd 里立刻删除这个 pod。 当 Pod 被强制删除时, api 服务器不会等待来自 Pod 所在节点上的 kubelet 的确认信息:pod 已经被终止。在 API 里 pod 会被立刻删除,在节点上, pods 被设置成立刻终止后,在强行杀掉前还会有一个很小的宽限期。

以下示例中,定义了一个Nginx Pod,其中设置了PreStop钩子函数,即在容器退出之前,优雅的关闭 Nginx:

apiVersion: v1
kind: Pod
metadata:name: hook-demo2
spec:containers:- name: hook-demo2image: nginxlifecycle:preStop:exec:command: ["/usr/sbin/nginx","-s","quit"]---
apiVersion: v1
kind: Pod
metadata:name: hook-demo2labels:app: hook
spec:containers:- name: hook-demo2image: nginxports:- name: webportcontainerPort: 80volumeMounts:- name: messagemountPath: /usr/share/lifecycle:preStop:exec:command: ['/bin/sh', '-c', 'echo Hello from the preStop Handler > /usr/share/message']volumes:- name: messagehostPath:path: /tmp

另外Hook调用的日志没有暴露个给 Pod 的 event,所以只能通过describe命令来获取,如果有错误将可以看到FailedPostStartHookFailedPreStopHook这样的 event。


http://www.yayakq.cn/news/535905/

相关文章:

  • 网站关键词指数查询哪个网站专做二手相机
  • 网站程序风格wordpress调用面包屑
  • 自助建手机网站免费店铺网站域名怎么做
  • 受欢迎的唐山网站建设阜宁做网站哪家最好
  • 个人做网站要买什么域名企业网站域名注册查询
  • 龙岗网站建设推广报价展示型网站模板源码
  • 上饶专业的企业网站开发公司重庆建设工程信息网官网app
  • 汉口网站建设网站建设及发布的流程
  • 网站wordpress是什么帝国cms如何做网站地图
  • 在网站留外链怎么做广告设计和平面设计有什么区别
  • 松江区网站开发wordpress文章管理钩子
  • 流程网站设计找潍坊做网站的
  • 自己写的网站怎么发布郴州新网app下载
  • 最专业的房地产网站建设潍坊网页模板建站
  • 工业品网络营销百家号seo怎么做
  • 长治推广型网站建设h5免费模板网站
  • 2015做导航网站好网站空间和域名
  • 怎样创建网站数据库搜索引擎营销原理
  • 推广文章郑州网站制作十年乐云seo
  • 制作网站 服务器配置微商货源网平台
  • 网站建设基础筹备园林景观设计公司排名
  • 网站续费自己做抖音视频制作软件
  • pyhton做网站搜索引擎优化自然排名的优点
  • 东莞市土木建筑学会天津搜索引擎优化公司
  • 江苏专业网站制作公司手机网站被禁止访问怎么打开网页
  • 建设公司网站征集信息的通知学校门户网站群建设方案
  • iis访问网站打开要很久网络营销包括的主要内容有
  • 沈阳网站优化陈西设计之家
  • 个人主页网站html做品牌推广应该怎么做
  • 云南网站建设哪家好学网站开发怎么样