
gathertown/upload-to-s3upload-to-s3 是一个 Kubernetes DaemonSet,用于在集群节点上监控特定目录中的文件变化,并自动将文件上传至 Amazon S3 存储桶。其核心功能是通过 inotify-tools 工具监控 hostPath 类型的存储卷,当有新文件(如应用程序崩溃生成的 core dump 文件)写入该目录时,自动完成文件收集与 S3 上传,适用于集群内节点级文件的集中收集、备份与分析场景。
inotify-tools 实现对 hostPath 卷的实时文件监控,支持对新增文件的自动检测与上传。/proc/sys/kernel/core_pattern 可将 core dump 定向至监控目录,详见 core 手册)。gather(用户 ID 1000)运行,降低安全风险。LOCAL_PATH)需确保用户 gather 具有读(r)权限,以保证文件可被读取与上传。nodeSelector 硬编码配置,限制 DaemonSet 仅部署在特定节点池,实现资源精准分配。需通过环境变量传递 AWS 存储桶访问凭证及相关参数,具体如下:
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
AWS_REGION | S3 存储桶所在 AWS 区域 | us-west-2 |
AWS_ACCESS_KEY_ID | AWS 访问密钥 ID | AKIAEXAMPLE123 |
AWS_SECRET_ACCESS_KEY | AWS 访问密钥密钥 | secret123examplekey |
AWS_BUCKET_NAME | 目标 S3 存储桶名称 | my-cluster-file-bucket |
LOCAL_PATH | 需监控的 hostPath 目录 | /var/log/core-dumps |
监控目录(LOCAL_PATH)需确保用户 gather(UID 1000)具有读取权限。可通过以下方式配置:
chmod o+r /path/to/local/dir(不推荐,需持久化)。yamlinitContainers: - name: set-permissions image: busybox command: ["chmod", "o+r", "/path/to/local/dir"] volumeMounts: - name: host-path-volume mountPath: /path/to/local/dir
hostPath 类型卷至 LOCAL_PATH 指定的目录。gather(UID 1000),确保非特权运行。nodepool: core-dump-collector)限制部署节点。yamlapiVersion: apps/v1 kind: DaemonSet metadata: name: upload-to-s3 namespace: default spec: selector: matchLabels: app: upload-to-s3 template: metadata: labels: app: upload-to-s3 spec: nodeSelector: nodepool: core-dump-collector # 硬编码节点池标签 securityContext: runAsUser: 1000 runAsGroup: 1000 volumes: - name: host-path-volume hostPath: path: /var/log/core-dumps # 对应 LOCAL_PATH type: DirectoryOrCreate containers: - name: upload-to-s3 image: gathertown/upload-to-s3:latest # 假设镜像名称 env: - name: AWS_REGION valueFrom: secretKeyRef: name: aws-credentials key: region - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: aws-credentials key: access-key-id - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: aws-credentials key: secret-access-key - name: AWS_BUCKET_NAME value: "my-cluster-file-bucket" - name: LOCAL_PATH value: "/var/log/core-dumps" volumeMounts: - name: host-path-volume mountPath: /var/log/core-dumps
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务