docs/getting-started/environment-setup.md

7.9 KiB
Raw Blame History

Environment Setup

Dapr can be run in either self hosted or Kubernetes modes. Running Dapr runtime in self hosted mode enables you to develop Dapr applications in your local development environment and then deploy and run them in other Dapr supported environments. For example, you can develop Dapr applications in self hosted mode and then deploy them to any Kubernetes cluster.

Contents

Prerequisites

For Windows user, ensure that Docker Desktop For Windows uses Linux containers.

Installing Dapr CLI

Using script to install the latest release

Windows

Install the latest windows Dapr cli to c:\dapr and add this directory to User PATH environment variable.

powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"

Linux

Install the latest linux Dapr CLI to /usr/local/bin

wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash

MacOS

Install the latest darwin Dapr CLI to /usr/local/bin

curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash

Or install via Homebrew

brew install dapr/tap/dapr-cli

From the Binary Releases

Each release of Dapr CLI includes various OSes and architectures. These binary versions can be manually downloaded and installed.

  1. Download the Dapr CLI
  2. Unpack it (e.g. dapr_linux_amd64.tar.gz, dapr_windows_amd64.zip)
  3. Move it to your desired location.
    • For Linux/MacOS - /usr/local/bin
    • For Windows, create a directory and add this to your System PATH. For example create a directory called c:\dapr and add this directory to your path, by editing your system environment variable.

Installing Dapr in self hosted mode

Install Dapr runtime using the CLI

Install Dapr by running dapr init from a command prompt

For Linux users, if you run your docker cmds with sudo, you need to use "sudo dapr init" For Windows users, make sure that you run the cmd terminal in administrator mode Note: See Dapr CLI for details on the usage of Dapr CLI

$ dapr init
⌛  Making the jump to hyperspace...
Downloading binaries and setting up components
✅  Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started

If you prefer you can also install to an alternate location by using --install-path:

$ dapr init --install-path /home/user123/mydaprinstall

To see that Dapr has been installed successful, from a command prompt run the docker ps command and check that the daprio/dapr:latest and redis container images are both running.

Install a specific runtime version

You can install or upgrade to a specific version of the Dapr runtime using dapr init --runtime-version. You can find the list of versions in Dapr Release.

# Install v0.1.0 runtime
$ dapr init --runtime-version 0.1.0

# Check the versions of cli and runtime
$ dapr --version
cli version: v0.1.0
runtime version: v0.1.0

Uninstall Dapr in a standalone mode

Uninstalling removes the Placement service container.

$ dapr uninstall

It won't remove the Redis or Zipkin containers by default in case you were using them for other purposes. To remove Redis, Zipkin and actor Placement container as well as remove the default Dapr dir located at $HOME/.dapr or %USERPROFILE%\.dapr\ run:

$ dapr uninstall --all

You should always run dapr uninstall before running another dapr init.

Installing Dapr on a Kubernetes cluster

When setting up Kubernetes, you can do this either via the Dapr CLI or Helm.

Note that installing Dapr using the CLI is recommended for testing purposes only.

Dapr installs the following pods:

  • dapr-operator: Manages component updates and kubernetes services endpoints for Dapr (state stores, pub-subs, etc.)
  • dapr-sidecar-injector: Injects Dapr into annotated deployment pods
  • dapr-placement: Used for actors only. Creates mapping tables that map actor instances to pods
  • dapr-sentry: Manages mTLS between services and acts as a certificate authority

Setup Cluster

You can install Dapr on any Kubernetes cluster. Here are some helpful links:

Note: The dapr control plane containers are curently only distributed on linux containers. Your kubernetes cluser must contain available Linux capable nodes. Both the dapr cli, and the dapr helm chart will automatically deploy with affinity for nodes with the label kubernetes.io/os=linux. For more information see Deploying to a Hybrid Linux/Windows K8s Cluster

Using the Dapr CLI

You can install Dapr to a Kubernetes cluster using CLI.

Note: that using the CLI does not support non-default namespaces.
If you need a non-default namespace, Helm installation has to be used (see below).

Install Dapr to Kubernetes

$ dapr init --kubernetes
  Note: this installation is recommended for testing purposes. For production environments, please use Helm

⌛  Making the jump to hyperspace...
✅  Deploying the Dapr Operator to your cluster...
✅  Success! Dapr has been installed. To verify, run 'kubectl get pods -w' in your terminal. To get started, go here: https://aka.ms/dapr-getting-started

Dapr CLI installs Dapr to default namespace of Kubernetes cluster using this manifest.

Uninstall Dapr on Kubernetes

$ dapr uninstall --kubernetes

Using Helm (Advanced)

You can install Dapr to Kubernetes cluster using a Helm 3 chart.

Note: The latest Dapr helm chart no longer supports Helm v2. Please migrate from helm v2 to helm v3 by following this guide.

Install Dapr to Kubernetes

  1. Make sure Helm 3 is installed on your machine

  2. Add Azure Container Registry as a Helm repo

helm repo add dapr https://daprio.azurecr.io/helm/v1/repo
helm repo update
  1. Create dapr-system namespace on your kubernetes cluster
kubectl create namespace dapr-system
  1. Install the Dapr chart on your cluster in the dapr-system namespace.
helm install dapr dapr/dapr --namespace dapr-system

Verify installation

Once the chart installation is complete, verify the dapr-operator, dapr-placement, dapr-sidecar-injector and dapr-sentry pods are running in the dapr-system namespace:

$ kubectl get pods -n dapr-system -w

NAME                                     READY     STATUS    RESTARTS   AGE
dapr-operator-7bd6cbf5bf-xglsr           1/1       Running   0          40s
dapr-placement-7f8f76778f-6vhl2          1/1       Running   0          40s
dapr-sidecar-injector-8555576b6f-29cqm   1/1       Running   0          40s
dapr-sentry-9435776c7f-8f7yd             1/1       Running   0          40s

Sidecar annotations

To see all the supported annotations for the Dapr sidecar on Kubernetes, visit this how to guide.

Uninstall Dapr on Kubernetes

Helm 3

helm uninstall dapr -n dapr-system

Note: See here for details on Dapr helm charts.