Knative Serving uses a Fluentd docker image to collect logs. Operators can customize their own docker image and configuration to define logging output.
Knative requires the following Fluentd plugins to process log records:
- fluentd >= v0.14.0
- fluent-plugin-kubernetes_metadata_filter >= 1.0.0 AND < 2.1.0
- fluent-plugin-detect-exceptions >= 0.0.9
- fluent-plugin-multi-format-parser >= 1.0.0
Operators can use any Docker image which meets the requirements above and includes the desired output plugin. Two examples below:
Operators can use k8s.gcr.io/fluentd-elasticsearch:v2.0.4 which includes fluent-plugin-elasticsearch that allows sending logs to a Elasticsearch service.
This sample Dockerfile is based on k8s.gcr.io/fluentd-elasticsearch:v2.0.4
.
It additionally adds one more plugin -
fluent-plugin-google-cloud
which allows sending logs to Stackdriver.
Operators can build this image and push it to a container registry which their Kubernetes cluster has access to. NOTE: Operators need to add credentials file the stackdriver agent needs to the docker image if their Knative Serving is not built on a GCP based cluster or they want to send logs to another GCP project. See here for more information.