侧边栏壁纸
博主头像
路小飞博主等级

行动起来,活在当下

  • 累计撰写 72 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

日志采集失败

路小飞
2025-03-26 / 0 评论 / 0 点赞 / 5 阅读 / 2001 字

相关文件

dep.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      nodeName: master-01
      containers:
      - name: myapp
        image: myapp:1.1  
        volumeMounts:
        - mountPath: /tmp/myapp  # 容器内挂载路径
          name: xeslog-volume  # 卷的名字
      volumes:
      - name: myappLog
        hostPath:
          path: /tmp/myapp/$(date +%Y-%m-%d-%s)  # 宿主机上的路径
          type: DirectoryOrCreate  # 挂载的类型为目录

Dockerfile

FROM alpine:3.8

# 安装 tzdata 来确保时区设置正确
RUN apk add --no-cache tzdata

# 复制 start.sh 脚本到容器中
COPY start.sh /start.sh

# 赋予执行权限
RUN chmod +x /start.sh

# 设置工作目录
WORKDIR /

# 设置容器启动时的入口命令
ENTRYPOINT ["/bin/sh", "/start.sh"]

背景

在 Kubernetes 环境中,有一个名为 myapp-deploy 的服务(Dep)。

该服务使用了一个 hostPath 卷将宿主机目录 /tmp/myapp/$(date +%Y-%m-%d-%s) 挂载到容器中的 /tmp/myapp,作为日志存储。

这些日志会被 Filebeat 收集,并转发至 EFK(Elasticsearch, Fluentd, Kibana)日志系统。

故障现象

在某个时刻,开发人员发现日志无法找到。这导致了日志采集的中断,影响了日志的监控与排查。

原因

故障的核心原因是节点的 /tmp/myapp/$(date +%Y-%m-%d-%s) 目录被意外删除。由于容器通过 hostPath 卷将宿主机上的该目录挂载至容器内,目录一旦丢失,容器就无法继续写入日志文件。这直接导致了服务中断和日志丢失。

但是服务正常运行,没有报警发出。

0

评论区