开发者社区> 问答> 正文

K8s Pod Lifecycle Hooks

我想在kubernetes集群发生任何变化时收到通知。创建/删除窗格等。这可以是webhook的形式,或pub / sub中的消息等,可以以自主方式使用的任何东西。

在gcp中运行kubernetes集群。

展开
收起
k8s小能手 2019-01-09 14:28:03 3327 0
2 条回答
写回答
取消 提交回答
  • POD的life cycle hook包括如下两种:

    PostStart
    PreStop

    1. PostStart Hook

    该hook在容器被创建后立刻触发;并且无法保证会在容器的ENTRYPOINT之前执行。由于无法保证和容器内其它进程启动的顺序相关联,所以不是应用程序进行启动前配置的最佳解决方案。如果要在应用程序启动前配置系统,可以使用Init Container。Init Container可以按照定义串联执行,并且执行结果可以为后面的Init Container或者主容器所看到。

    在一些特殊案例中,PostStart可以用来进行一些系统环境的配置,比如配置iptables或者kernel参数。

    1. PreStop Hook

    该hook在容器被删除前触发,由于这个hook是同步执行的,所以必须在容器被删除之前执行完成这个hook。这个Hook是很适合作为应用程序优雅退出的机制的,可以定义一系列的行为来释放容器占有的资源、进行通知和告警来实现优雅退出。

    使用方式可以参考以下文档
    https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

    2019-07-17 23:24:59
    赞同 展开评论 打赏
  • 整合最优质的专家资源和技术资料,问答解疑

    您可以通过在Linux兼容语言(例如go,python等)中创建与相关k8s对象的监视端点的钩子来获得此类事件。即/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}是Deployment对象的手表端点。您可以从k8s-api-server的API参考中找到所需对象的监视端点。

    2019-07-17 23:24:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像