Add nodeAffinity to all logging components, add resources to fluent-bit, tuning

This commit is contained in:
Stefan Reimer 2021-03-19 16:15:58 +01:00
parent ef5fa96ec8
commit 1018270620
6 changed files with 62 additions and 9 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: kubezero-logging name: kubezero-logging
description: KubeZero Umbrella Chart for complete EFK stack description: KubeZero Umbrella Chart for complete EFK stack
type: application type: application
version: 0.6.1 version: 0.6.2
appVersion: 1.4.1 appVersion: 1.4.1
home: https://kubezero.com home: https://kubezero.com
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png

View File

@ -18,7 +18,7 @@ spec:
{{- end }} {{- end }}
{{- if .zone }} {{- if .zone }}
node.attr.zone: {{ .zone }} node.attr.zone: {{ .zone }}
cluster.routing.allocation.awareness.attributes: zone cluster.routing.allocation.awareness.attributes: k8s_node_name,zone
{{- end }} {{- end }}
transport.compress: true transport.compress: true
{{- if .processors }} {{- if .processors }}
@ -66,8 +66,9 @@ spec:
matchLabels: matchLabels:
elasticsearch.k8s.elastic.co/cluster-name: {{ template "kubezero-lib.fullname" $ }} elasticsearch.k8s.elastic.co/cluster-name: {{ template "kubezero-lib.fullname" $ }}
topologyKey: kubernetes.io/hostname topologyKey: kubernetes.io/hostname
{{- if .zone }} {{- if or .zone .nodeAffinity }}
nodeAffinity: nodeAffinity:
{{- if .zone }}
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms: nodeSelectorTerms:
- matchExpressions: - matchExpressions:
@ -75,6 +76,17 @@ spec:
operator: In operator: In
values: values:
- {{ .zone }} - {{ .zone }}
{{- end }}
{{- if .nodeAffinity }}
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: {{ .nodeAffinity.key }}
operator: In
values:
- {{ .nodeAffinity.value }}
{{- end }}
{{- end }} {{- end }}
count: {{ .count }} count: {{ .count }}
volumeClaimTemplates: volumeClaimTemplates:

View File

@ -29,6 +29,19 @@ spec:
cpu: 200m cpu: 200m
limits: limits:
memory: 2Gi memory: 2Gi
{{- if .Values.kibana.nodeAffinity }}
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: {{ .Values.kibana.nodeAffinity.key }}
operator: In
values:
- {{ .Values.kibana.nodeAffinity.value }}
{{- end }}
http: http:
tls: tls:
selfSignedCertificate: selfSignedCertificate:

View File

@ -18,8 +18,9 @@ es:
size: 512Gi size: 512Gi
class: ebs-sc-gp2-xfs class: ebs-sc-gp2-xfs
zone: us-west-2a zone: us-west-2a
jvm_heap: 4 nodeAffinity:
cpu_limit: 2 key: kubezero
value: logging
s3Snapshot: s3Snapshot:
enabled: true enabled: true
iamrole: "dfsf" # INSERT_CLOUDFORMATION_OUTPUT_ElasticSearchSnapshots iamrole: "dfsf" # INSERT_CLOUDFORMATION_OUTPUT_ElasticSearchSnapshots
@ -27,6 +28,9 @@ es:
prometheus: true prometheus: true
kibana: kibana:
nodeAffinity:
key: kubezero
value: logging
istio: istio:
enabled: true enabled: true
url: kibana.example.com url: kibana.example.com

View File

@ -4,6 +4,17 @@ fluentd:
metrics: metrics:
enabled: true enabled: true
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: kubezero
operator: In
values:
- logging
url: fluentd.example.com url: fluentd.example.com
istio: istio:
enabled: true enabled: true

View File

@ -22,6 +22,9 @@ es:
# size: 16Gi # size: 16Gi
# class: local-sc-xfs # class: local-sc-xfs
# zone: us-west-2a # zone: us-west-2a
# nodeAffinity:
# key: node label name
# value: node label value
s3Snapshot: s3Snapshot:
enabled: false enabled: false
iamrole: "" # INSERT_CLOUDFORMATION_OUTPUT_ElasticSearchSnapshots iamrole: "" # INSERT_CLOUDFORMATION_OUTPUT_ElasticSearchSnapshots
@ -31,6 +34,9 @@ es:
kibana: kibana:
count: 1 count: 1
#servicename: kibana.example.com #servicename: kibana.example.com
#nodeAffinity:
# key: node label name
# value: node label value
istio: istio:
enabled: false enabled: false
gateway: "istio-system/ingressgateway" gateway: "istio-system/ingressgateway"
@ -86,10 +92,10 @@ fluentd:
resources: resources:
requests: requests:
cpu: 50m cpu: 200m
memory: 256Mi memory: 256Mi
limits: limits:
memory: 1024Mi memory: 512Mi
output: output:
# Default should be "logging-kubezero-logging-es-http" if fullnameOverride is NOT used # Default should be "logging-kubezero-logging-es-http" if fullnameOverride is NOT used
@ -184,8 +190,8 @@ fluentd:
chunk_limit_size 8MB chunk_limit_size 8MB
total_limit_size 4GB total_limit_size 4GB
flush_mode interval flush_mode interval
flush_thread_count 4 flush_thread_count 2
flush_interval 5s flush_interval 10s
flush_at_shutdown true flush_at_shutdown true
retry_type exponential_backoff retry_type exponential_backoff
retry_timeout 300m retry_timeout 300m
@ -207,6 +213,13 @@ fluent-bit:
- key: node-role.kubernetes.io/master - key: node-role.kubernetes.io/master
effect: NoSchedule effect: NoSchedule
resources:
requests:
cpu: 20m
memory: 16Mi
limits:
memory: 64Mi
config: config:
output: output:
host: logging-fluentd host: logging-fluentd