k8s-pod 实战七 (PreStop 和 PostStart 详细分析)
PreStop 和 PostStart 详细分析
PreStop Hook
PreStop Hook 是在容器终止之前执行的操作。它通常用于执行一些清理任务或完成某些操作,以确保容器能够平稳关闭。例如,在数据库应用中,你可能希望在容器终止之前完成所有正在进行的事务。
PostStart Hook
PostStart Hook 是在容器启动之后立即执行的操作。它通常用于在容器启动后执行一些初始化任务。例如,你可能希望在容器启动后立即加载某些配置文件或启动辅助进程。
实战案例
假设我们有一个需要在启动后执行初始化脚本、在终止前执行清理脚本的应用程序。我们可以通过 PostStart 和 PreStop Hook 来实现这些需求。
目录结构
假设你的项目目录结构如下:
my-app/
├── init-script.sh
├── cleanup-script.sh
└── deployment.yaml
1. 编写初始化脚本和清理脚本
在 init-script.sh
中编写初始化脚本:
#!/bin/bash
echo "Running initialization tasks..."
# 在这里添加你的初始化任务,例如加载配置文件或启动辅助进程
在 cleanup-script.sh
中编写清理脚本ÿ