8000 feat: fluent bit logs collector in k8s backend by tedim52 · Pull Request #2653 · kurtosis-tech/kurtosis · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat: fluent bit logs collector in k8s backend #2653

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Feb 22, 2025
Merged

feat: fluent bit logs collector in k8s backend #2653

merged 47 commits into from
Feb 22, 2025

Conversation

tedim52
Copy link
Collaborator
@tedim52 tedim52 commented Feb 15, 2025

Description

This PR is part 1 in adding centralized logging to the K8s backend. Similar to the Docker backend, this change implements the deployment/management of a fluentbit logs collector's via a k8s DaemonSet. The DaemonSet deploys fluent bit log collection pods on every node in a k8s cluster. The logs collector is configured to pick up logs from all user services in enclaves running on that node.

Currently, it's configured to output the log stream to stdout - in pt 2. the logs will be sent to a Vector aggregator.

Is this change user facing?

NO

@tedim52 tedim52 marked this pull request as draft February 15, 2025 00:46
@tedim52 tedim52 changed the title [wip] k8s logging pt 1: fluentbit logs collector feat: fluent bit logs collector in k8s backend Feb 19, 2025
@tedim52 tedim52 added this pull request to the merge queue Feb 21, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 21, 2025
@tedim52 tedim52 added this pull request to the merge queue Feb 22, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 22, 2025
@tedim52 tedim52 enabled auto-merge February 22, 2025 17:16
@tedim52 tedim52 added this pull request to the merge queue Feb 22, 2025
Merged via the queue into main with commit 05e3813 Feb 22, 2025
51 checks passed
@tedim52 tedim52 deleted the tedi/k8s-logging branch February 22, 2025 18:00
@tedim52 tedim52 restored the tedi/k8s-logging branch February 22, 2025 22:02
github-merge-queue bot pushed a commit that referenced this pull request Mar 12, 2025
…cess (#2663)

## Description
The vector logs aggregator needs labels such as `enclave_uuid` ,
`service_uuid`, etc. to write logs out to the proper filepaths. To
enrich the log stream with these labels, the fluentbit logs collector
uses the `kubernetes` filter:
https://docs.fluentbit.io/manual/pipeline/filters/kubernetes. The filter
works by having the logs collector query the k8s api server for
necessary information (pods labels in this case) about each pod. To
query the api server, the logs collector needs perms.

This change adds those perms in the form of a `ServiceAccount` given a
`ClusterRole` with acess via a `ClusterRoleBinding`.

## Is this change user facing?
NO

## References
#2653
github-merge-queue bot pushed a commit that referenced this pull request Mar 18, 2025
## Description
This PR adds a vector logs aggregator to the kubernetes backend and has
it output logs to a shared volume, mouned to the engine pod.

Additionally, it migrates the k8s backend to use the
`PersistentVolumeLogsDatabaseClient` so now both Docker and K8s are
streaming from a persistent volume containing logs aggregated by Vector.

To use kubernetes logging, users will need to use the v4 config and
specify the engine node they'd like the engine to be placed on. Both the
aggregator and engine will be placed on this node every `kurtosis engine
start` so the engine has access to the same logs db.
```
config-version: 4
should-send-metrics: true
kurtosis-clusters:
  ...
  minikube:
    type: "kubernetes"
    config:
      kubernetes-cluster-name: "minikube"
      enclave-size-in-megabytes: 10
      storage-class: "standard"
      engine-node-name: "minikube-m02"
  ...
```

## Is this change user facing?
YES

## References
#2653
#2663
github-merge-queue bot pushed a commit that referenced this pull request Mar 20, 2025
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](
8EC5
1.5.0...1.6.0)
(2025-03-18)


### Features

* add resources to logs collector daemonset for k8s api server access
([#2663](#2663))
([5ae473c](5ae473c))
* export service logs (Docker)
([#2668](#2668))
([1651249](1651249))
* fluent bit logs collector in k8s backend
([#2653](#2653))
([05e3813](05e3813))
* vector logs aggregator in k8s
([#2669](#2669))
([106e4a2](106e4a2))


### Bug Fixes

* exit codes on tasks
([#2654](#2654))
([ffd86b8](ffd86b8))
* push ci docs
([#2680](#2680))
([61857f0](61857f0))
* stdout for file inspect
([#2658](#2658))
([6ae51a3](6ae51a3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0