Skip to content

Latest commit

 

History

History
222 lines (162 loc) · 5.01 KB

README.md

File metadata and controls

222 lines (162 loc) · 5.01 KB

Deploy to Kubernetes (k8s)

Prerequisites

  1. Install Docker for Desktop within Kubernetes

  2. Download Dapr CLI (currently is 0.6.0)

    λ  dapr --version
    CLI version: 0.6.0
    Runtime version: 0.6.0
  3. Install Dapr to Kubernetes

    dapr init --kubernetes
  4. Install Helm 3 (currently is 3.1.2)

    λ  helm version
    version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}

Build docker images for Apis

  1. Build with docker-compose

    docker-compose build
  2. Verify

    λ  docker images "example-*" --format "table {{.ID}}\t{{.Size}}\t{{.Repository}}\t{{.Tag}}"
    IMAGE ID            SIZE                REPOSITORY                 TAG
    db4df09d7d8e        158MB               example-publisher          dev
    4623ae384858        158MB               example-secondsubscriber   dev
    99d539a3f453        158MB               example-firstsubscriber    dev

Start Installing

cd .\Helm

Install Redis

λ  helm install redis .\redis\
NAME: redis
LAST DEPLOYED: Sun Apr  5 16:48:25 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=redis,app.kubernetes.io/instance=redis" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:80

Configure Statestore & PubSub for Dapr

λ  kubectl apply -f .\redis-components\
component.dapr.io/messagebus created
component.dapr.io/statestore created

Install Publisher

λ  helm install publisher-api .\publisher-api
NAME: publisher-api
LAST DEPLOYED: Sun Apr  5 16:49:44 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1

Install FirstSubscriberApi

λ  helm install first-subscriber-api .\first-subscriber-api
NAME: first-subscriber-api
LAST DEPLOYED: Sun Apr  5 16:50:20 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1

Install SecondSubscriberApi

λ  helm install second-subscriber-api .\second-subscriber-api
NAME: second-subscriber-api
LAST DEPLOYED: Sun Apr  5 16:54:27 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1

Verify installation

Get Pods

λ  kubectl get po
NAME                                     READY   STATUS    RESTARTS   AGE
dapr-operator-6bdfd5554-qqrjh            1/1     Running   0          29h
dapr-placement-846cd76b57-2v27s          1/1     Running   0          29h
dapr-sentry-6d46d5fbc6-4mx87             1/1     Running   0          29h
dapr-sidecar-injector-7849f77c4b-kkgkp   1/1     Running   1          46h
first-subscriber-api-59fc565665-b45qb    2/2     Running   0          5m4s
publisher-api-7b4666cdcc-nxwmq           2/2     Running   0          5m39s
redis-5c7b7d5b89-ftwqw                   1/1     Running   0          6m59s
second-subscriber-api-776bf669c5-pqwt6   2/2     Running   0          56s

Observe logs of subscribers

  • For example, below logs are retrieved from first-subscriber-api
λ  kubectl logs first-subscriber-api-59fc565665-b45qb -c daprd

Verify PubSub

  • Use RestClient Visual Studio Code Extension make a POST request to publisher-api

  • Observe logs of publisher-api

    λ  kubectl logs publisher-api-7b4666cdcc-nxwmq -c publisher-api

  • Observe logs of first-subscriber-api

    λ  kubectl logs first-subscriber-api-59fc565665-b45qb -c first-subscriber-api

  • Observe logs of second-subscriber-api

    λ  kubectl logs second-subscriber-api-776bf669c5-pqwt6 -c second-subscriber-api

Cleanup

λ  helm uninstall redis publisher-api first-subscriber-api second-subscriber-api
release "redis" uninstalled
release "publisher-api" uninstalled
release "first-subscriber-api" uninstalled
release "second-subscriber-api" uninstalled
λ  kubectl delete -f .\redis-components\
component.dapr.io "messagebus" deleted
component.dapr.io "statestore" deleted
λ  dapr uninstall --kubernetes
Removing Dapr from your cluster...
Dapr has been removed successfully