如何每小时或每天保存“kubectl get events --all-namespaces”命令的输出?

问题描述 投票:0回答:1

我有 3 个 kubernetes 集群,我试图每小时/每天保存“kubectl get events --all-namespaces”的输出。

当前设置:

  1. 3 个 Azure kubernetes 集群。
  2. 使用“filebeat”发送日志。
  3. 将日志发送到“Graylog”

当前正在获取路径上的容器日志

:/var/lib/docker/containers

请帮助我找到一种方法来发送“kubectl get events --all-namespaces”的输出和集群级别的事件日志。

kubernetes events azure-aks filebeat graylog
1个回答
1
投票
  1. 使用安装了 kubectl 的 docker 镜像编写一个 K8s Cronjob 并运行“kubectl get events -A”,如下面的 Dockerfile 所示
  2. 创建一个服务账户,clusterrole,clusterrolebinding,给服务账户“get events”权限
  3. 在 cronjob 清单中使用此服务帐户
  4. 当作业按计划运行时,kubectl get 事件的日志将发送到容器日志
  5. Filebeat 将完成剩下的工作

有关配置 pod 以运行 kubectl 的详细信息,请访问:

https://itnext.io/running-kubectl-commands-from-within-a-pod-b303e8176088

Docker文件

FROM debian:buster
RUN apt update && \
      apt install -y curl && \
      curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && \
      chmod +x ./kubectl && \
      mv ./kubectl /usr/local/bin/kubectl
CMD kubectl get events -A
© www.soinside.com 2019 - 2024. All rights reserved.