kubernetes 如何保存“kubectl get events --all-namespaces”命令的输出,以每小时或每天为单位?

a8jjtwal  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(162)

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

  1. 3 Azure Kubernetes集群。
    1.使用“filebeat”来发送日志。
    1.将日志运送到“Graylog”
    当前正在获取路径:/var/lib/docker/containers上的容器日志
    请帮助我找到一种方法来发送“kubectl get events --all-namespaces”和集群级别的events logs的输出。
flvlnr44

flvlnr441#

1.使用安装了kubectl的docker镜像编写一个K8s Cronjob,并运行“kubectl get events -A”,如下面的Dockerfile所示
1.创建一个服务帐户,clusterrole,clusterrolebinding,它为服务帐户赋予“获取事件”权限
1.在cronjob清单中使用此服务帐户
1.当作业按计划运行时,kubectl get事件的日志将被发送到容器日志

  1. Filebeat会完成剩下的工作
    配置pod运行kubectl的详细信息如下:
    https://itnext.io/running-kubectl-commands-from-within-a-pod-b303e8176088
    Dockerfile
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

相关问题