Skip to content

Commit 9006331

Browse files
committed
review from Mark and Cassie pt 2
Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com>
1 parent c653973 commit 9006331

File tree

7 files changed

+41
-17
lines changed

7 files changed

+41
-17
lines changed

daprdocs/content/en/concepts/dapr-services/placement.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ The Placement service Docker container is started automatically as part of [`dap
1313

1414
## Kubernetes mode
1515

16-
The Placement service is deployed as part of `dapr init -k`, or via the Dapr Helm charts. For more information on running Dapr on Kubernetes, visit the [Kubernetes hosting page]({{< ref kubernetes >}}).
16+
The Placement service is deployed as part of `dapr init -k`, or via the Dapr Helm charts. You can run Placement in high availability (HA) mode. [Learn more about setting HA mode in your Kubernetes service.]({{< ref "kubernetes-production.md#individual-service-ha-helm-configuration" >}})
17+
18+
For more information on running Dapr on Kubernetes, visit the [Kubernetes hosting page]({{< ref kubernetes >}}).
1719

1820
## Placement tables
1921

daprdocs/content/en/concepts/dapr-services/scheduler.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,19 @@ The diagram below shows how the Scheduler service is used via the jobs API when
1111

1212
<img src="/images/scheduler/scheduler-architecture.png" alt="Diagram showing the Scheduler control plane service and the jobs API">
1313

14-
The Scheduler service is used by default for [actor scheduler reminders]({{< ref "jobs-overview.md#actor-reminders" >}}) where actor reminders, which are also used by workflows, are stored in the Scheduler service as opposed to the Placement service.
14+
## Actor reminders
15+
16+
Prior to Dapr v1.15, [actor reminders]({{< ref "actors-timers-reminders.md#actor-reminders" >}}) were run using the Placement service. Now, by default, the [`SchedulerReminders` feature flag]({{< ref "support-preview-features.md#current-preview-features" >}}) is set to `true`, and all new actor reminders you create are run using the Scheduler service to make them more scalable.
17+
18+
Once you deploy Dapr v1.15, any _existing_ actor reminders are migrated from the Placement service to the Scheduler service. You can prevent this migration by setting the `SchedulerReminders` flag to `false`.
1519

1620
## Self-hosted mode
1721

1822
The Scheduler service Docker container is started automatically as part of `dapr init`. It can also be run manually as a process if you are running in [slim-init mode]({{< ref self-hosted-no-docker.md >}}).
1923

2024
## Kubernetes mode
2125

22-
The Scheduler service is deployed as part of `dapr init -k`, or via the Dapr Helm charts. You can run Scheduler in high availability (HA) mode. [Learn more about setting HA mode in your Kubernetes service.]({{< ref "kubernetes-production.md#high-availability-mode" >}})
26+
The Scheduler service is deployed as part of `dapr init -k`, or via the Dapr Helm charts. You can run Scheduler in high availability (HA) mode. [Learn more about setting HA mode in your Kubernetes service.]({{< ref "kubernetes-production.md#individual-service-ha-helm-configuration" >}})
2327

2428
For more information on running Dapr on Kubernetes, visit the [Kubernetes hosting page]({{< ref kubernetes >}}).
2529

daprdocs/content/en/developing-applications/building-blocks/actors/actors-timers-reminders.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ Refer [api spec]({{< ref "actors_api.md#invoke-timer" >}}) for more details.
107107

108108
## Actor reminders
109109

110+
{{% alert title="Note" color="primary" %}}
111+
In Dapr v1.15, actor reminders are stored by default in the [Scheduler service]({{< ref "scheduler.md#actor-reminders" >}}).
112+
{{% /alert %}}
113+
110114
Reminders are a mechanism to trigger *persistent* callbacks on an actor at specified times. Their functionality is similar to timers. But unlike timers, reminders are triggered under all circumstances until the actor explicitly unregisters them or the actor is explicitly deleted or the number in invocations is exhausted. Specifically, reminders are triggered across actor deactivations and failovers because the Dapr actor runtime persists the information about the actors' reminders using Dapr actor state provider.
111115

112116
You can create a persistent reminder for an actor by calling the HTTP/gRPC request to Dapr as shown below, or via Dapr SDK.

daprdocs/content/en/developing-applications/building-blocks/jobs/jobs-overview.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,6 @@ The jobs API provides several features to make it easy for you to schedule jobs.
5959

6060
The Scheduler service enables the scheduling of jobs to scale across multiple replicas, while guaranteeing that a job is only triggered by 1 scheduler service instance.
6161

62-
### Actor reminders
63-
64-
Actors have reminders; the Scheduler service is used by default for actor reminders (which are also used by workflows) to make them more scalable.
65-
66-
> **Note:** In earlier releases, the Placement service was used for actor reminders. This is no longer recommended.
67-
68-
The `SchedulerReminders` preview feature defaults to `true`. To disable actor scheduler reminders, you can set it to `false`.
69-
7062
## Try out the jobs API
7163

7264
You can try out the jobs API in your application. After [Dapr is installed]({{< ref install-dapr-cli.md >}}), you can begin using the jobs API, starting with [the How-to: Schedule jobs guide]({{< ref howto-schedule-and-handle-triggered-jobs.md >}}).

daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,19 @@ You can install Dapr on Kubernetes using a Helm v3 chart.
231231
--wait
232232
```
233233
234+
To install in **high availability** mode and scale select services independently of global:
235+
236+
```bash
237+
helm upgrade --install dapr dapr/dapr \
238+
--version={{% dapr-latest-version short="true" %}} \
239+
--namespace dapr-system \
240+
--create-namespace \
241+
--set global.ha.enabled=false \
242+
--set dapr_scheduler.ha=true \
243+
--set dapr_placement.ha=true \
244+
--wait
245+
```
246+
234247
See [Guidelines for production ready deployments on Kubernetes]({{< ref kubernetes-production.md >}}) for more information on installing and upgrading Dapr using Helm.
235248
236249
### (optional) Install the Dapr dashboard as part of the control plane

daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,24 @@ For a new Dapr deployment, HA mode can be set with both:
9595

9696
For an existing Dapr deployment, [you can enable HA mode in a few extra steps]({{< ref "#enabling-high-availability-in-an-existing-dapr-deployment" >}}).
9797

98-
### Scheduler service HA configuration
98+
### Individual service HA Helm configuration
9999

100-
As of Dapr 1.15, the scheduler `dapr_scheduler.ha` flag scales schedulers to three instances independently of the `global.ha.enabled` flag. Default is one instance, meaning HA for schedulers is not default.
100+
You can configure HA mode via Helm across all services by setting the `global.ha.enabled` flag to `true`. By default, `--set global.ha.enabled=true` is fully respected and cannot be overridden, making it impossible to simultaneously have either the placement or scheduler service as a single instance.
101101

102-
`global.ha.enabled` set to `true` is fully respected and cannot be overridden by setting the local HA flag to `false`.
102+
> **Note:** HA for scheduler and placement services is not the default setting.
103103

104-
To scale the schedulers to three instancers, set `global.ha.enabled` to false and `dapr_scheduler.ha` to true.
104+
To scale scheduler and placement to three instances independently of the `global.ha.enabled` flag, set `global.ha.enabled` to `false` and `dapr_scheduler.ha` and `dapr_placement.ha` to `true`. For example:
105105

106-
This flag can be set via Helm with `--set dapr_scheduler.ha=true`.
106+
```bash
107+
helm upgrade --install dapr dapr/dapr \
108+
--version={{% dapr-latest-version short="true" %}} \
109+
--namespace dapr-system \
110+
--create-namespace \
111+
--set global.ha.enabled=false \
112+
--set dapr_scheduler.ha=true \
113+
--set dapr_placement.ha=true \
114+
--wait
115+
```
107116

108117
## Setting cluster critical priority class name for control plane services
109118

daprdocs/content/en/operations/support/support-preview-features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ For CLI there is no explicit opt-in, just the version that this was first made a
2222
| **Actor State TTL** | Allow actors to save records to state stores with Time To Live (TTL) set to automatically clean up old data. In its current implementation, actor state with TTL may not be reflected correctly by clients, read [Actor State Transactions]({{< ref actors_api.md >}}) for more information. | `ActorStateTTL` | [Actor State Transactions]({{< ref actors_api.md >}}) | v1.11 |
2323
| **Component Hot Reloading** | Allows for Dapr-loaded components to be "hot reloaded". A component spec is reloaded when it is created/updated/deleted in Kubernetes or on file when running in self-hosted mode. Ignores changes to actor state stores and workflow backends. | `HotReload`| [Hot Reloading]({{< ref components-concept.md >}}) | v1.13 |
2424
| **Subscription Hot Reloading** | Allows for declarative subscriptions to be "hot reloaded". A subscription is reloaded either when it is created/updated/deleted in Kubernetes, or on file in self-hosted mode. In-flight messages are unaffected when reloading. | `HotReload`| [Hot Reloading]({{< ref "subscription-methods.md#declarative-subscriptions" >}}) | v1.14 |
25-
| **Scheduler Actor Reminders** | Scheduler actor reminders are actor reminders stored in the Scheduler control plane service, as opposed to the Placement control plane service actor reminder system. The `SchedulerReminders` preview feature defaults to `true`, but you can disable Scheduler actor reminders by setting it to `false`. | `SchedulerReminders`| [Scheduler actor reminders]({{< ref "jobs-overview.md#actor-reminders" >}}) | v1.14 |
25+
| **Scheduler Actor Reminders** | Scheduler actor reminders are actor reminders stored in the Scheduler control plane service, as opposed to the Placement control plane service actor reminder system. The `SchedulerReminders` preview feature defaults to `true`, but you can disable Scheduler actor reminders by setting it to `false`. | `SchedulerReminders`| [Scheduler actor reminders]({{< ref "scheduler.md#actor-reminders" >}}) | v1.14 |

0 commit comments

Comments
 (0)