mirror of https://github.com/dapr/docs.git
Add how to's for etcd, consul and cassandra (#213)
* add how to for etcd, consul and cassandra * Update setup-cassandra.md * add memcached how to
This commit is contained in:
parent
63465c8e17
commit
271aa2cf99
|
@ -43,5 +43,9 @@ kubectl apply -f statestore.yaml
|
|||
## Reference
|
||||
|
||||
* [Setup Redis](./setup-redis.md)
|
||||
* [Setup Cassandra](./setup-cassandra.md)
|
||||
* [Setup etcd](./setup-etcd.md)
|
||||
* [Setup Consul](./setup-consul.md)
|
||||
* [Setup Memcached](./setup-memcached.md)
|
||||
* [Setup Azure CosmosDB](./setup-azure-cosmosdb.md)
|
||||
* [Supported State Stores](./supported-state-stores.md)
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
# Setup Cassandra
|
||||
|
||||
## Locally
|
||||
|
||||
You can run Cassandra locally with the Datastax Docker image:
|
||||
|
||||
```
|
||||
docker run -e DS_LICENSE=accept --memory 4g --name my-dse -d datastax/dse-server -g -s -k
|
||||
```
|
||||
|
||||
You can then interact with the server using `localhost:9042`.
|
||||
|
||||
## Kubernetes
|
||||
|
||||
The easiest way to install Cassandra on Kubernetes is by using the [Helm chart](https://github.com/helm/charts/tree/master/incubator/cassandra):
|
||||
|
||||
```
|
||||
helm install --namespace "cassandra" -n "cassandra" incubator/cassandra
|
||||
```
|
||||
|
||||
This will install Cassandra into the `cassandra` namespace by default.
|
||||
To interact with Cassandra, find the service with: `kubectl get svc -n cassandra`.
|
||||
|
||||
For example, if installing using the example above, the Cassandra DNS would be:
|
||||
|
||||
`cassandra.cassandra.svc.cluster.local`
|
||||
|
||||
## Create a Dapr component
|
||||
|
||||
The next step is to create a Dapr component for Cassandra.
|
||||
|
||||
Create the following YAML file named `cassandra.yaml`:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.cassandra
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: <REPLACE-WITH-COMMA-DELIMITED-HOSTS> # Required. Example: cassandra.cassandra.svc.cluster.local
|
||||
- name: username
|
||||
value: <REPLACE-WITH-PASSWORD> # Optional. default: ""
|
||||
- name: password
|
||||
value: <REPLACE-WITH-PASSWORD> # Optional. default: ""
|
||||
- name: consistency
|
||||
value: <REPLACE-WITH-CONSISTENCY> # Optional. default: "All"
|
||||
- name: table
|
||||
value: <REPLACE-WITH-TABLE> # Optional. default: "items"
|
||||
- name: keyspace
|
||||
value: <REPLACE-WITH-KEYSPACE> # Optional. default: "dapr"
|
||||
- name: protoVersion
|
||||
value: <REPLACE-WITH-PROTO-VERSION> # Optional. default: "4"
|
||||
- name: replicationFactor
|
||||
value: <REPLACE-WITH-REPLICATION-FACTOR> # Optional. default: "1"
|
||||
```
|
||||
|
||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here](../../concepts/components/secrets.md)
|
||||
|
||||
The following example uses the Kubernetes secret store to retrieve the username and password:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.cassandra
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: <REPLACE-WITH-HOSTS>
|
||||
- name: username
|
||||
secretKeyRef:
|
||||
name: <KUBERNETES-SECRET-NAME>
|
||||
key: <KUBERNETES-SECRET-KEY>
|
||||
- name: password
|
||||
secretKeyRef:
|
||||
name: <KUBERNETES-SECRET-NAME>
|
||||
key: <KUBERNETES-SECRET-KEY>
|
||||
...
|
||||
```
|
||||
|
||||
## Apply the configuration
|
||||
|
||||
### In Kubernetes
|
||||
|
||||
To apply the Cassandra state store to Kubernetes, use the `kubectl` CLI:
|
||||
|
||||
```
|
||||
kubectl apply -f cassandra.yaml
|
||||
```
|
||||
|
||||
### Running locally
|
||||
|
||||
The Dapr CLI will automatically create a directory named `components` in your current working directory with a Redis component.
|
||||
To use Cassandra, replace the redis.yaml file with the cassandra.yaml above.
|
|
@ -0,0 +1,90 @@
|
|||
# Setup Consul
|
||||
|
||||
## Locally
|
||||
|
||||
You can run Consul locally using Docker:
|
||||
|
||||
```
|
||||
docker run -d --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul
|
||||
```
|
||||
|
||||
You can then interact with the server using `localhost:8500`.
|
||||
|
||||
## Kubernetes
|
||||
|
||||
The easiest way to install Consul on Kubernetes is by using the [Helm chart](https://github.com/helm/charts/tree/master/stable/consul):
|
||||
|
||||
```
|
||||
helm install --name consul stable/consul
|
||||
```
|
||||
|
||||
This will install Consul into the `default` namespace.
|
||||
To interact with Consul, find the service with: `kubectl get svc consul`.
|
||||
|
||||
For example, if installing using the example above, the Consul host address would be:
|
||||
|
||||
`consul.default.svc.cluster.local:8500`
|
||||
|
||||
## Create a Dapr component
|
||||
|
||||
The next step is to create a Dapr component for Consul.
|
||||
|
||||
Create the following YAML file named `consul.yaml`:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.consul
|
||||
metadata:
|
||||
- name: datacenter
|
||||
value: <REPLACE-WITH-DATA-CENTER> # Required. Example: dc1
|
||||
- name: httpAddr
|
||||
value: <REPLACE-WITH-CONSUL-HTTP-ADDRESS> # Required. Example: "consul.default.svc.cluster.local:8500"
|
||||
- name: aclToken
|
||||
value: <REPLACE-WITH-ACL-TOKEN> # Optional. default: ""
|
||||
- name: scheme
|
||||
value: <REPLACE-WITH-SCHEME> # Optional. default: "http"
|
||||
- name: keyPrefixPath
|
||||
value: <REPLACE-WITH-TABLE> # Optional. default: ""
|
||||
```
|
||||
|
||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here](../../concepts/components/secrets.md)
|
||||
|
||||
The following example uses the Kubernetes secret store to retrieve the acl token:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.consul
|
||||
metadata:
|
||||
- name: datacenter
|
||||
value: <REPLACE-WITH-DATACENTER>
|
||||
- name: httpAddr
|
||||
value: <REPLACE-WITH-HTTP-ADDRESS>
|
||||
- name: aclToken
|
||||
secretKeyRef:
|
||||
name: <KUBERNETES-SECRET-NAME>
|
||||
key: <KUBERNETES-SECRET-KEY>
|
||||
...
|
||||
```
|
||||
|
||||
## Apply the configuration
|
||||
|
||||
### In Kubernetes
|
||||
|
||||
To apply the Consul state store to Kubernetes, use the `kubectl` CLI:
|
||||
|
||||
```
|
||||
kubectl apply -f consul.yaml
|
||||
```
|
||||
|
||||
### Running locally
|
||||
|
||||
The Dapr CLI will automatically create a directory named `components` in your current working directory with a Redis component.
|
||||
To use Consul, replace the redis.yaml file with the consul.yaml above.
|
|
@ -0,0 +1,67 @@
|
|||
# Setup etcd
|
||||
|
||||
## Locally
|
||||
|
||||
You can run etcd locally using Docker:
|
||||
|
||||
```
|
||||
docker run -d --name etcd bitnami/etcd
|
||||
```
|
||||
|
||||
You can then interact with the server using `localhost:2379`.
|
||||
|
||||
## Kubernetes
|
||||
|
||||
The easiest way to install etcd on Kubernetes is by using the [Helm chart](https://github.com/helm/charts/tree/master/incubator/etcd):
|
||||
|
||||
```
|
||||
helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
|
||||
helm install --name etcd incubator/etcd
|
||||
```
|
||||
|
||||
This will install etcd into the `default` namespace.
|
||||
To interact with etcd, find the service with: `kubectl get svc etcd-etcd`.
|
||||
|
||||
For example, if installing using the example above, the etcd host address would be:
|
||||
|
||||
`etcd-etcd.default.svc.cluster.local:2379`
|
||||
|
||||
## Create a Dapr component
|
||||
|
||||
The next step is to create a Dapr component for etcd.
|
||||
|
||||
Create the following YAML file named `etcd.yaml`:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.etcd
|
||||
metadata:
|
||||
- name: endpoints
|
||||
value: <REPLACE-WITH-COMMA-DELIMITED-ENDPOINTS> # Required. Example: "etcd-etcd.default.svc.cluster.local:2379"
|
||||
- name: dialTimeout
|
||||
value: <REPLACE-WITH-DIAL-TIMEOUT> # Required. Example: "5s"
|
||||
- name: operationTimeout
|
||||
value: <REPLACE-WITH-OPERATION-TIMEOUT> # Optional. default: "10S"
|
||||
```
|
||||
|
||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here](../../concepts/components/secrets.md)
|
||||
|
||||
|
||||
## Apply the configuration
|
||||
|
||||
### In Kubernetes
|
||||
|
||||
To apply the etcd state store to Kubernetes, use the `kubectl` CLI:
|
||||
|
||||
```
|
||||
kubectl apply -f etcd.yaml
|
||||
```
|
||||
|
||||
### Running locally
|
||||
|
||||
The Dapr CLI will automatically create a directory named `components` in your current working directory with a Redis component.
|
||||
To use etcd, replace the redis.yaml file with the etcd.yaml above.
|
|
@ -0,0 +1,66 @@
|
|||
# Setup Memcached
|
||||
|
||||
## Locally
|
||||
|
||||
You can run Memcached locally using Docker:
|
||||
|
||||
```
|
||||
docker run --name my-memcache -d memcached
|
||||
```
|
||||
|
||||
You can then interact with the server using `localhost:11211`.
|
||||
|
||||
## Kubernetes
|
||||
|
||||
The easiest way to install Memcached on Kubernetes is by using the [Helm chart](https://github.com/helm/charts/tree/master/stable/memcached):
|
||||
|
||||
```
|
||||
helm install --name memcached stable/memcached
|
||||
```
|
||||
|
||||
This will install Memcached into the `default` namespace.
|
||||
To interact with Memcached, find the service with: `kubectl get svc memcached`.
|
||||
|
||||
For example, if installing using the example above, the Memcached host address would be:
|
||||
|
||||
`memcached.default.svc.cluster.local:11211`
|
||||
|
||||
## Create a Dapr component
|
||||
|
||||
The next step is to create a Dapr component for Memcached.
|
||||
|
||||
Create the following YAML file named `memcached.yaml`:
|
||||
|
||||
```
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: <name>
|
||||
spec:
|
||||
type: state.memcached
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: <REPLACE-WITH-COMMA-DELIMITED-ENDPOINTS> # Required. Example: "memcached.default.svc.cluster.local:11211"
|
||||
- name: maxIdleConnections
|
||||
value: <REPLACE-WITH-MAX-IDLE-CONNECTIONS> # Optional. default: "2"
|
||||
- name: timeout
|
||||
value: <REPLACE-WITH-TIMEOUT> # Optional. default: "1000ms"
|
||||
```
|
||||
|
||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here](../../concepts/components/secrets.md)
|
||||
|
||||
|
||||
## Apply the configuration
|
||||
|
||||
### In Kubernetes
|
||||
|
||||
To apply the Memcached state store to Kubernetes, use the `kubectl` CLI:
|
||||
|
||||
```
|
||||
kubectl apply -f memcached.yaml
|
||||
```
|
||||
|
||||
### Running locally
|
||||
|
||||
The Dapr CLI will automatically create a directory named `components` in your current working directory with a Redis component.
|
||||
To use Memcached, replace the redis.yaml file with the memcached.yaml above.
|
|
@ -5,3 +5,7 @@
|
|||
| ------------- | -------|------ |
|
||||
| Redis | :white_check_mark: | :white_check_mark:
|
||||
| Azure CosmosDB | :white_check_mark: | :x: |
|
||||
| Cassandra | :white_check_mark: | :x: |
|
||||
| Hashicorp Consul | :white_check_mark: | :x: |
|
||||
| etcd | :white_check_mark: | :x: |
|
||||
| Memcached | :white_check_mark: | :x: |
|
||||
|
|
Loading…
Reference in New Issue