add high priority class name recommendation for production

Signed-off-by: Filinto Duran <filinto@diagrid.io>
This commit is contained in:
Filinto Duran 2024-06-01 16:47:22 -05:00
parent 7e4996b30e
commit 20ae2b2436
No known key found for this signature in database
GPG Key ID: FCA5E10CA2CB458A
2 changed files with 23 additions and 2 deletions

View File

@ -136,7 +136,7 @@ export DAPR_HELM_REPO_PASSWORD="passwd_xxx"
You can run Dapr with three replicas of each control plane pod in the `dapr-system` namespace for [production scenarios]({{< ref kubernetes-production.md >}}).
```bash
dapr init -k --enable-ha=true
dapr init -k --enable-ha=true --set global.priorityClassName=system-cluster-critical
```
#### Install in custom namespace
@ -220,7 +220,7 @@ You can install Dapr on Kubernetes using a Helm v3 chart.
--wait
```
To install in **high availability** mode:
To install in **high availability** mode and **critical** priority class:
```bash
helm upgrade --install dapr dapr/dapr \
@ -228,6 +228,7 @@ You can install Dapr on Kubernetes using a Helm v3 chart.
--namespace dapr-system \
--create-namespace \
--set global.ha.enabled=true \
--set global.priorityClassName=system-cluster-critical \
--wait
```

View File

@ -95,6 +95,26 @@ For a new Dapr deployment, HA mode can be set with both:
For an existing Dapr deployment, [you can enable HA mode in a few extra steps]({{< ref "#enabling-high-availability-in-an-existing-dapr-deployment" >}}).
## High Priority Class Name
In some scenarios, there might be memory and/or cpu pressure on nodes and the Dapr control plane pods might get selected
for eviction. To prevent this, you can set a high priority class name for the Dapr control plane pods. This will ensure that
the Dapr control plane pods are not evicted unless all other pods with lower priority are evicted.
More information on Protecting Missiong-Critical Pods can be found [here](https://kubernetes.io/blog/2023/01/12/protect-mission-critical-pods-priorityclass/).
There are two default critical priority classes in Kubernetes:
- system-cluster-critical
- system-node-critical
We recommend to set the priorityClassName to `system-cluster-critical` for the Dapr control plane pods.
For a new Dapr deployment, `system-cluster-critical` priority class mode can be set via the helm value `global.priorityClassName`.
For a new Dapr deployment, HA mode can be set with both:
- The [Dapr CLI]({{< ref "kubernetes-deploy.md#install-in-highly-available-mode" >}}), and
- [Helm charts]({{< ref "kubernetes-deploy.md#add-and-install-dapr-helm-chart" >}})
## Deploy Dapr with Helm
[Visit the full guide on deploying Dapr with Helm]({{< ref "kubernetes-deploy.md#install-with-helm-advanced" >}}).