问题描述
我有一个包含 2 个容器的 kubernetes 清单文件。主容器正在收集特定时间段的数据和其他(logstash)容器读取主容器的日志并将其发送到 ELK 堆栈。 主容器完成其工作后,优雅地发出信号或关闭 logstash 容器的最佳方法是什么?
解决方法
目前,无法将容器显式标记为“Sidecar”(尽管有 long-lasting KEP 来实现它)。
这意味着您能做的最好的事情是使用命令定义 Container Lifecycle Hook 以优雅地关闭您的 sidecar 容器。类似的东西:
containers:
- name: logstash-container
image: logstash-image
- name: your-main-container
image: your-main-container-image
lifecycle:
preStop:
exec:
command: ["/bin/sh","-c","gracefully terminate logstash"]done"]