Skip to content

[FEATURE]: Add Kubernetes support similar to Docker #107

@InputObject2

Description

@InputObject2

Is your feature request related to a problem? Please describe.
Currently Capture is only able to grab information from a docker.sock to see running containers on a host. When deployed in Kubernetes, a lot of distros now favor containerd over docker. This means that we cannot monitor the docker containers that exist on this host.

Describe the solution you'd like
I'd like for Capture to be able to pull information about running pods or containers.

I see 3 ways to achieve this:

  1. from the containerd.sock directly or via crictl
  2. from the kubelet.sock using
  3. using the cluster's Kubernetes API using the Informer pattern in go.

To get the container metrics we would be using either the cluster's metrics-server (less timely updates, about every 15s) or through stats from the kubelet.sock (instant stats).

The .sock solutions are full-featured and performant but require privileged access. The Informer pattern is slower to update (can be a few seconds before receiving changes) but requires only a list/watch pods permission inside the cluster and the Capture agent can run as a non root user.

The setup could implement a parameter to tell the agent if it is running in privileged mode or not, which will impact the method used and how fast and accurate the data and metrics will be.

This is related to bluewave-labs/Checkmate#2684

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions