k8s 容器钩子

https://kubernetes.io/zh/docs/concepts/containers/container-lifecycle-hooks/

有两个钩子暴露在容器中:
PostStart
这个钩子在创建容器之后立即执行。但是,不能保证钩子会在容器入口点之前执行。
没有参数传递给处理程序。

PreStop
在容器终止之前是否立即调用此钩子,取决于 API 的请求或者管理事件,类似活动探针故障、资源抢占、
资源竞争等等。 如果容器已经完全处于终止或者完成状态,则对 preStop 钩子的调用将失败。
它是阻塞的,同时也是同步的,因此它必须在删除容器的调用之前完成。 没有参数传递给处理程序。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: testLifecycle
  labels:
    app: testLifecycle
spec:
  replicas: 1
  selector:
    matchLabels:
      app: testLifecycle
  template:
    metadata:
      labels:
        app: testLifecycle
    spec:
      containers:
      - name: testLifecycle
        image: registry.yinzhen.cn/demo/testLifecycle
        imagePullPolicy: Always
        lifecycle:
          preStop:
            exec:
              command: ["/bin/sh", "/opt/SpringCloud/cloudserver.sh", "stop"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k8s钩子函数可以在容器生命周期的不同阶段执行特定的操作,常见的使用场景包括: 1. 在容器启动前进行一些初始化操作,例如加载配置文件、创建目录等。 2. 在容器启动后进行一些额外的配置,例如修改环境变量、执行一些命令等。 3. 在容器退出前进行一些清理操作,例如删除临时文件、发送通知等。 下面是一个使用钩子函数的例子,假设我们有一个应用程序需要在容器启动前加载配置文件,并在容器退出前发送通知。我们可以使用k8s钩子函数来实现这个功能。 ```yaml apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:latest volumeMounts: - name: config mountPath: /etc/myapp lifecycle: postStart: exec: command: ["/bin/sh", "-c", "echo 'Loading config file'; cp /etc/myapp/config.ini /app/config.ini"] preStop: exec: command: ["/bin/sh", "-c", "echo 'Sending notification'; curl -X POST http://notification-service/send"] volumes: - name: config configMap: name: myapp-config ``` 在上面的例子中,我们定义了一个Pod,并在其中定义了一个容器。在容器中,我们使用了一个名为config的卷,并将其挂载到了容器的/etc/myapp目录下。在容器启动前,我们使用了postStart钩子函数,在容器内部执行了一个命令,将配置文件从config卷中复制到了/app/config.ini文件中。在容器退出前,我们使用了preStop钩子函数,在容器内部执行了一个命令,发送了一个HTTP POST请求到notification-service服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值