我使用下面的示例来测试 postStart 和 preStop 挂钩。
apiVersion: v1
kind: Pod
metadata:
name: aaaa
labels:
wwww: qqqq
spec:
containers:
- name: adassa
image: nginx:1.10.1
lifecycle:
postStart:
exec:
command: ['bash', '-c', 'echo 11111111']
preStop:
exec:
command: ['bash', '-c', 'echo 2222222']
我的 pod 已成功创建,但后来当我尝试使用
kubectl logs aaaa -c adassa
和 kubectl logs aaaa
检查 hooks 输出时,没有日志。
我尝试过但无法查明问题所在。我认为可能是 shell 问题,所以我将
bash
更改为 sh
但之后连 Pod 都没有创建。
有人知道这里出了什么问题吗?
启动后事件:
回显输出位于容器范围内,因此它不会显示/记录任何内容。 为了执行我使用的命令:
命令:[“/bin/sh”,“-c”,“echo 11111111> /tmp/message”]
有多种日志记录方法,但是如上所述在文件上写入是一个简单的示例,用于测试目的。
创建 pod 后,执行交互以获取 shell,最后检查生命周期触发器是否以这种方式写入示例文件。
kubectl exec -it aaaa --/bin/bash
猫/tmp/消息
你应该得到:
11111111
请参阅 this 指南了解不同的日志记录方法,考虑使用第 3 方