Skip to content

A simple introspective kubernetes service that forwards events to a specified sink.

License

Notifications You must be signed in to change notification settings

codefreshdemo/eventrouter

 
 

Repository files navigation

Eventrouter

This repository contains a simple event router for the Kubernetes project. The event router serves as an active watcher of event resource in the kubernetes system, which takes those events and pushes them to a user specified sink. This is useful for a number of different purposes, but most notably long term behavioral analysis of your workloads running on your kubernetes cluster.

Goals

This project has several objectives, which include:

  • Persist events for longer period of time to allow for system debugging
  • Allows operators to forward events to other system(s) for archiving/ML/introspection/etc.
  • It should be relatively low overhead
  • Support for multiple sinks should be configurable

NOTE:

By default, eventrouter is configured to leverage existing EFK stacks by outputting wrapped json object which are easy to index in elastic search.

Non-Goals:

  • This service does not provide a querable extension, that is a responsibility of the sink
  • This service does not serve as a storage layer, that is also the responsibility of the sink

Building

You can build and test either as a standalone go application or as a Docker container.

Standalone:

$ go get github.com/heptio/eventrouter

Containerized:

$ sudo make all 

Configure and Execute

Standalone:

Assuming your testing on a local cluster, it will use the local config.json, which you can override.

$ ./eventrouter -v 3 -logtostderr 

On the cluster

Standup:

$ kubectl create -f yaml/

Teardown:

$ kubectl delete -f yaml/

About

A simple introspective kubernetes service that forwards events to a specified sink.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 94.7%
  • Makefile 5.3%