You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Fluent Operator](https://github.com/fluent/fluent-operator) provides great flexibility in building a logging layer based on FluentBit and Fluentd.
3
+
[Fluent Operator](https://github.com/fluent/fluent-operator/) provides a Kubernetes-native logging pipeline based on Fluent-Bit and Fluentd.
4
4
5
-
## Deploy Fluent Operator with Helm
5
+
## Installation
6
6
7
-
> Note: For the helm based install, Helm v3.2.1 or higher is needed.
8
-
9
-
The Fluent Bit section of the Fluent Operator supports different CRI `docker`, `containerd`, and `CRI-O`.
10
-
`containerd` and `CRI-O` use the `CRI Log` format which is different with `docker`, they requires additional parser to parse JSON application logs. You should set different `containerRuntime` depending on your container runtime.
11
-
12
-
The default runtime is docker, you can choose other runtimes as follows.
13
-
14
-
If your container runtime is `containerd` or `cri-o`, you can set the `containerRuntime` parameter to `containerd` or `crio`. e.g.
> Please replace < version > with a actual version like v1.0.0
18
+
By default, all CRDs required for Fluent Operator will be installed. To prevent `helm install` from installing CRDs, you can set `fluent-bit.crdsEnable` or `fluentd.crdsEnable` to `false`.
27
19
28
-
Fluent Operator CRDs will be installed by default when running a helm install for the chart. But if the CRD already exists, it will be skipped with a warning. So make sure you install the CRDs by yourself if you upgrade your Fluent Operator version.
20
+
## Upgrading
29
21
30
-
> Note: During the upgrade process, if a CRD was previously created using the create operation, an error will occur during the apply operation. Using apply here allows the CRD to be replaced and created in its entirety in a single operation.
22
+
Helm [does not manage the lifecycle of CRDs](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/), so if the Fluent Operator CRDs already exist, subsequent
23
+
chart upgrades will not add or remove CRDs even if they have changed. During upgrades, users should manually update CRDs:
For more info on various use cases of Fluent Operator, you can refer to [Fluent-Operator-Walkthrough](https://github.com/kubesphere-sigs/fluent-operator-walkthrough).
47
-
48
-
## Collect Kubernetes logs
49
-
This guide provisions a logging pipeline including the Fluent Bit DaemonSet and its log input/filter/output configurations to collect Kubernetes logs including container logs and kubelet logs.
> Note that you need a running Elasticsearch v5+ cluster to receive log data before start. **Remember to adjust [output-elasticsearch.yaml](https://github.com/fluent/fluent-operator/blob/master/manifests/logging-stack/output-elasticsearch.yaml) to your own es setup**. Kafka and Fluentd outputs are optional and are turned off by default.
54
-
55
-
#### Deploy the Kubernetes logging pipeline with Helm
56
-
57
-
You can also deploy the Kubernetes logging pipeline with Helm, just need to set the `Kubernetes` parameter to `true`(default):
# fluentbit resources. If you do want to specify resources, adjust them as necessary
91
91
# You can adjust it based on the log volume.
92
92
resources:
@@ -125,7 +125,7 @@ fluentbit:
125
125
# List of volumes that can be mounted by containers belonging to the pod.
126
126
additionalVolumes: []
127
127
# Additional rbac rules which will be applied to the fluent-bit clusterrole. Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding
128
-
# NOTE: As fluent-bit is managed by the fluent-operator, fluent-bit can only be granted permissions the operator also has
128
+
# NOTE: As fluent-bit is managed by the fluent-operator, fluent-bit can only be granted permissions the operator also has
129
129
rbacRules: {}
130
130
# Pod volumes to mount into the container's filesystem.
131
131
additionalVolumesMounts: []
@@ -203,7 +203,7 @@ fluentbit:
203
203
# Use storageType as "filesystem" if you want to use filesystem as the buffering mechanism for tail input.
204
204
storageType: memory
205
205
pauseOnChunksOverlimit: "off"
206
-
# multiline.parser
206
+
# multiline.parser
207
207
# multilineParser: "docker, cri"
208
208
systemd:
209
209
enable: true
@@ -287,51 +287,51 @@ fluentbit:
287
287
# See https://docs.fluentbit.io/manual/pipeline/outputs/loki
288
288
loki:
289
289
# Switch for generation of fluentbit loki ClusterOutput (and loki basic auth http user and pass secrets if required)
290
-
enable: false # Bool
291
-
host: 127.0.0.1 # String
290
+
enable: false # Bool
291
+
host: 127.0.0.1 # String
292
292
port: 3100# Int
293
293
# Either, give http{User,Password},tenantID string values specifying them directly
294
294
httpUser: myuser
295
295
httpPassword: mypass
296
296
tenantID: ''
297
297
# Or give {http{User,Password},tenantID} as reference to secrets that you have manually installed into your kubernetes cluster
298
-
#httpUser:
299
-
#valueFrom:
300
-
#secretKeyRef:
301
-
#key: value
302
-
#name: husersecret
303
-
#optional: true
304
-
#httpPassword:
305
-
#valueFrom:
306
-
#secretKeyRef:
307
-
#key: value
308
-
#name: hpasssecret
309
-
#optional: true
310
-
#tenantID:
311
-
#valueFrom:
312
-
#secretKeyRef:
313
-
#key: value
314
-
#name: tenantsecret
315
-
#optional: true
298
+
#httpUser:
299
+
# valueFrom:
300
+
# secretKeyRef:
301
+
# key: value
302
+
# name: husersecret
303
+
# optional: true
304
+
#httpPassword:
305
+
# valueFrom:
306
+
# secretKeyRef:
307
+
# key: value
308
+
# name: hpasssecret
309
+
# optional: true
310
+
#tenantID:
311
+
# valueFrom:
312
+
# secretKeyRef:
313
+
# key: value
314
+
# name: tenantsecret
315
+
# optional: true
316
316
#
317
-
#To use bearer token auth instead of http basic auth
318
-
#bearerToken: ey....
319
-
#or with existing secret
320
-
#bearerToken:
321
-
#valueFrom:
322
-
#secretKeyRef:
323
-
#key: value
324
-
#name: bearerTokenSecret
325
-
#optional: true
326
-
#labels: [] # String list of <name>=<value>
327
-
#labelKeys: [] # String list of <key>
328
-
#removeKeys: [] # String list of <key>
329
-
#labelMapPath: '' # String, path to file, ex /here/it/is
330
-
#dropSingleKey: off
331
-
#lineFormat: '' # String
332
-
#autoKubernetesLabels: on
333
-
#tenantIDKey: # String
334
-
#tls: {} # *plugins.TLS fluentbit docs
317
+
# To use bearer token auth instead of http basic auth
318
+
#bearerToken: ey....
319
+
# or with existing secret
320
+
#bearerToken:
321
+
# valueFrom:
322
+
# secretKeyRef:
323
+
# key: value
324
+
# name: bearerTokenSecret
325
+
# optional: true
326
+
#labels: [] # String list of <name>=<value>
327
+
#labelKeys: [] # String list of <key>
328
+
#removeKeys: [] # String list of <key>
329
+
#labelMapPath: '' # String, path to file, ex /here/it/is
330
+
#dropSingleKey: off
331
+
#lineFormat: '' # String
332
+
#autoKubernetesLabels: on
333
+
#tenantIDKey: # String
334
+
#tls: {} # *plugins.TLS fluentbit docs
335
335
stackdriver: {}
336
336
# You can configure the stackdriver configuration here
0 commit comments