Updating Readme to favor kubectl based deploy vs. multi app run for this release

Signed-off-by: Paul Yuknewicz <paulyuk@microsoft.com>
This commit is contained in:
Paul Yuknewicz 2024-07-22 14:00:38 -07:00
parent 46f1b0a08c
commit 27ae4c9bb4
1 changed files with 7 additions and 135 deletions

View File

@ -53,107 +53,8 @@ Expected output in a fresh Kubernetes cluster without Dapr installed:
✅ Success! Dapr has been installed to namespace dapr-system. To verify, run `dapr status -k' in your terminal. To get started, go here: https://aka.ms/dapr-getting-started
```
### Step 2 - Run the Multi-app run template to deploy both the Node.js and Python apps
To run both the Node.js and Python apps, run the following command from the `hello-kubernetes` directory:
<!-- STEP
name: "Run hello-kubernetes multi-app run template"
tags:
- multi-app
timeout_seconds: 60
expected_return_code:
expected_stdout_lines:
- 'Deploying app "nodeapp" to Kubernetes'
- 'Deploying app "pythonapp" to Kubernetes'
- '== APP - nodeapp == Got a new order! Order ID: 12'
- '== APP - nodeapp == Successfully persisted state for Order ID: 12'
expected_stderr_lines:
output_match_mode: substring
match_order: none
-->
```bash
dapr run -k -f dapr.yaml
```
<!-- END_STEP -->
Expected output
```
This is a preview feature and subject to change in future releases.
Validating config and starting app "nodeapp"
Deploying app "nodeapp" to Kubernetes
Deploying service YAML "/path/quickstarts/tutorials/hello-kubernetes/node/.dapr/deploy/service.yaml" to Kubernetes
Deploying deployment YAML "/path/quickstarts/tutorials/hello-kubernetes/node/.dapr/deploy/deployment.yaml" to Kubernetes
Streaming logs for containers in pod "nodeapp-6dcddb44f5-q5gnr"
Writing log files to directory : /path/quickstarts/tutorials/hello-kubernetes/node/.dapr/logs
Validating config and starting app "pythonapp"
Deploying app "pythonapp" to Kubernetes
Deploying deployment YAML "/path/quickstarts/tutorials/hello-kubernetes/python/.dapr/deploy/deployment.yaml" to Kubernetes
== APP - nodeapp == Node App listening on port 3000!
Streaming logs for containers in pod "pythonapp-7479cdcb7b-z827w"
Writing log files to directory : /path/quickstarts/tutorials/hello-kubernetes/python/.dapr/logs
Starting to monitor Kubernetes pods for deletion.
== APP - nodeapp == Got a new order! Order ID: 2
== APP - nodeapp == Successfully persisted state for Order ID: 2
== APP - nodeapp == Got a new order! Order ID: 3
== APP - nodeapp == Successfully persisted state for Order ID: 3
== APP - nodeapp == Got a new order! Order ID: 4
== APP - nodeapp == Successfully persisted state for Order ID: 4
== APP - nodeapp == Got a new order! Order ID: 5
== APP - nodeapp == Successfully persisted state for Order ID: 5
```
Use `Ctrl+C` to stop the apps. Or you can run the following command to stop the apps:
<!-- STEP
name: "Stop hello-kubernetes multi-app run template"
tags:
- multi-app
timeout_seconds: 60
expected_return_code:
expected_stdout_lines:
expected_stderr_lines:
-->
<!-- Properly stop multi-app run template if not already stopped.-->
```bash
dapr stop -k -f dapr.yaml
```
<!-- END_STEP -->
This spins down the Kubernetes resources that were deployed in the previous step.
## Using the `kubectl` CLI
### Step 1 - Setup Dapr on your Kubernetes cluster
> **Note**: This step can be skipped if already done above.
Follow the steps below to deploy Dapr to Kubernetes. For more details, see [Deploy Dapr on a Kubernetes cluster](https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-deploy/).
> Please note, the CLI will install to the dapr-system namespace by default. If this namespace does not exist, the CLI will create it.
> If you need to deploy to a different namespace, you can use `-n mynamespace`.
```
dapr init --kubernetes --wait
```
Sample output:
```
⌛ Making the jump to hyperspace...
Note: To install Dapr using Helm, see here: https://docs.dapr.io/getting-started/install-dapr-kubernetes/#install-with-helm-advanced
✅ Deploying the Dapr control plane to your cluster...
✅ Success! Dapr has been installed to namespace dapr-system. To verify, run `dapr status -k' in your terminal. To get started, go here: https://aka.ms/dapr-getting-started
```
> Without the `--wait` flag the Dapr CLI will exit as soon as the kubernetes deployments are created. Kubernetes deployments are asyncronous by default, so we use `--wait` here to make sure the dapr control plane is completely deployed and running before continuing.
<!-- Introducing sleep here to first let the previous execution complete -->
<!-- STEP
name: Check dapr status
tags:
- normal-run
-->
```bash
@ -166,45 +67,16 @@ You will see output like the following. All services should show `True` in the H
```
NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED
dapr-operator dapr-system True Running 1 1.0.1 13s 2021-03-08 11:00.21
dapr-placement-server dapr-system True Running 1 1.0.1 13s 2021-03-08 11:00.21
dapr-dashboard dapr-system True Running 1 0.6.0 13s 2021-03-08 11:00.21
dapr-sentry dapr-system True Running 1 1.0.1 13s 2021-03-08 11:00.21
dapr-sidecar-injector dapr-system True Running 1 1.0.1 13s 2021-03-08 11:00.21
dapr-dashboard dapr-system True Running 1 0.14.0 41s 2024-07-22 13:53.05
dapr-operator dapr-system True Running 1 1.13.5 42s 2024-07-22 13:53.04
dapr-placement-server dapr-system True Running 1 1.13.5 42s 2024-07-22 13:53.04
dapr-sentry dapr-system True Running 1 1.13.5 42s 2024-07-22 13:53.04
dapr-sidecar-injector dapr-system True Running 1 1.13.5 42s 2024-07-22 13:53.04
```
### Step 2 - Create and configure a state store
## Using the `kubectl` CLI
Dapr can use a number of different state stores (Redis, CosmosDB, DynamoDB, Cassandra, etc) to persist and retrieve state. This demo will use Redis.
1. Follow [these steps](https://docs.dapr.io/getting-started/tutorials/configure-state-pubsub/#step-1-create-a-redis-store) to create a Redis store.
2. Once your store is created, add the keys to the `redis.yaml` file in the `deploy` directory.
> **Note:** the `redis.yaml` file provided in this quickstart will work securely out-of-the-box with a Redis installed with `helm install bitnami/redis`. If you have your own Redis setup, replace the `redisHost` value with your own Redis master address, and the redisPassword with your own Secret. You can learn more [here](https://docs.dapr.io/operations/components/component-secrets/).
3. Apply the `redis.yaml` file and observe that your state store was successfully configured!
<!-- As part of previous dev-init, expecting that the state store component is already there for hello-kubernetes run. At the end of this run, it will be deleted.-->
<!-- STEP
name: Deploy redis config
sleep: 1
expected_stdout_lines:
- "component.dapr.io/statestore configured"
tags:
- normal-run
-->
```bash
kubectl apply -f ./deploy/redis.yaml
```
<!-- END_STEP -->
```bash
component.dapr.io/statestore created
```
> **Note**: If you installed Dapr using the `--dev` flag in Kubernetes, then the statestore component will be created automatically in the `default` namespace. The above commmand will output `component.dapr.io/statestore configured` instead of `component.dapr.io/statestore created`. If the `--dev` flag was used for Dapr init, and you want to use the `dapr-dev-redis` deployment as state store, replace the `redisHost` value inside `./deploy/redis.yaml` with `dapr-dev-redis-master:6379` and also the `secretKeyRef`, `name` with `dapr-dev-redis`. Then run the command `kubectl apply -f ./deploy/redis.yaml`, to apply the file again. This will create a `statestore` Dapr component pointing to `dapr-dev-redis` deployment.
### Step 3 - Deploy the Node.js app with the Dapr sidecar
### Step 2 - Deploy the Node.js app with the Dapr sidecar
<!-- STEP
name: Deploy Node App