Deploying to Specific NodesΒΆ
You can run Robusta on specific nodes in your cluster. For example, on a hybrid Windows and Linux cluster, you'll want to ensure Robusta runs on Linux nodes.
You can configure this using either nodeSelectors
or affinities
.
Running Robusta on Linux NodesΒΆ
Add the following to your Helm values:
runner:
nodeSelector:
kubernetes.io/os: linux
kubewatch:
nodeSelector:
kubernetes.io/os: linux
# if using Robusta's embedded kube-prometheus-stack, you can configure the Prometheus Operator's components to run on a specific node too
kube-prometheus-stack:
alertmanager:
alertmanagerSpec:
nodeSelector: kubernetes.io/os: linux
prometheus:
prometheusSpec:
nodeSelector: kubernetes.io/os: linux
prometheusOperator:
nodeSelector: kubernetes.io/os: linux
admissionWebhooks:
deployment:
nodeSelector: kubernetes.io/os: linux
patch:
nodeSelector: kubernetes.io/os: linux
kube-state-metrics:
nodeSelector: kubernetes.io/os: linux
grafana:
nodeSelector: kubernetes.io/os: linux
thanosRuler:
thanosRulerSpec:
nodeSelector: kubernetes.io/os: linux
Alternatively, you can configure this with nodeAffinities:
runner:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
kubewatch:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
# if using Robusta's embedded kube-prometheus-stack, you can configure the Prometheus Operator's components with nodeAffinities too
kube-prometheus-stack:
alertmanager:
alertmanagerSpec:
affinity:
nodeAffinity: ... # copy from above
prometheus:
prometheusSpec:
affinity:
nodeAffinity: ... # copy from above
prometheusOperator:
affinity:
nodeAffinity: ... # copy from above
admissionWebhooks:
deployment:
affinity:
nodeAffinity: ... # copy from above
patch:
affinity:
nodeAffinity: ... # copy from above
kube-state-metrics:
affinity:
nodeAffinity: ... # copy from above
grafana:
affinity:
nodeAffinity: ... # copy from above
thanosRuler:
thanosRulerSpec:
affinity:
nodeAffinity: ... # copy from above
General TipsΒΆ
To see your node labels, run kubectl get nodes --show-labels