Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The components of the stack are below :



Step-by-step guide

For smooth deployment we have created 3 scripts. One must edit the script to give the correct cluster details to each script. For eg, kubeconfig file, cluster ips
and also the corrects URLs where EMCO binaries like orchestrator, clm etc are running.

...

  • NOTE , in the above 192.168.121.12 is the ip of the cluster node where m3db is running. 31772 is the NodePort of the m3coordinator.

  • After running the following pods and services shall be present in the nodes edge1 and edge2


Code Block

...

themeMidnight
title

...

collectd-

...

prometheus
vagrant@emco:~/multicloud-k8s/kud/tests$ kce1 get pods
NAME                                                  READY   STATUS

...

    RESTARTS   AGE
collection-collectd-62z6z                             1/1     Running   

...

0          

...

19m
collection-grafana-5ff455f786-bcm9m                   

...

2/2     

...

Running   

...

0          

...

19m
collection-prometheus-oper-operator-b55765c57-2n7cn   

...

1/1     

...

Running   0          

...

19m
prometheus-collection-prometheus-oper-prometheus-0    3/3     Running   1          19m
vagrant@emco:~/multicloud-k8s/kud/tests$ kce2 get pods
NAME                                                  READY   STATUS    RESTARTS   AGE
collection-collectd-jdvl9                             1/1     Running   0          

...

20m
collection-grafana-5ff455f786-q9rrn                   

...

2/2     Running   0          

...

20m
collection-prometheus-oper-operator-b55765c57-tzchg   1/1     Running   0          

...

20m
prometheus-collection-prometheus-oper-prometheus-0    3/3     Running   1          19m
vagrant@emco:~/multicloud-k8s/kud/tests$ kce1 get svc
NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
collectd                                ClusterIP   10.244.20.184   <none>        9104/TCP         

...

20m
collection-grafana                      NodePort    10.244.17.32    <none>        80:30092/TCP     

...

20m
collection-prometheus-oper-operator     ClusterIP   10.244.24

...

.248   <none>        8080/TCP         20m
collection-prometheus-oper-prometheus   NodePort    10.244.14.32    <none>        9090:30090/TCP   20m
kubernetes         

...

        

...

         

...

   

...

 ClusterIP   10.244.

...

0.

...

1      <none>        

...

443/TCP   

...

       2d22h
prometheus-operated                     ClusterIP  

...

 None      

...

      <none>        

...

9090/TCP         

...

20m
vagrant@emco:~/multicloud-k8s/kud/tests$ kce2 get svc
NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
collectd                                ClusterIP   10.244.13.251   <none>        9104/TCP         

...

20m
collection-grafana                      NodePort    10.244.41.253   <none>        80:30092/TCP     

...

20m
collection-prometheus-oper-operator     ClusterIP   10.244.10.220   <none>        8080/TCP         

...

20m
collection-prometheus-oper-prometheus   NodePort    10.244.31.123   <none>        9090:30090/TCP   

...

20m
kubernetes                              ClusterIP   10.244.0.1      <none>        443/TCP          2d22h
prometheus-operated                     ClusterIP   None            <none>        9090/TCP         

...

20m


  • Once all pods are deployed correctly, the topology should be like below:

    Image Modified








Manual steps for getting the m3db up and running:

As pointed out earlier, we are working on some steps which are not automated for the deployment of the stack.
In due course of time, these might as well be automated. But these are steps till then :

1. Three node cluster on which m3db needs to be deployed have to be labelled, before the m3db script is run. The commands :

Code Block
languagebash
themeMidnight
titleNodeLabelling
NODES=($(kubectl get nodes --output=jsonpath={.items..metadata.name}))
kubectl label node/${NODES[0]} failure-domain.beta.kubernetes.io/region=us-west1-a
kubectl label node/${NODES[1]} failure-domain.beta.kubernetes.io/region=us-west1-b
kubectl label node/${NODES[2]} failure-domain.beta.kubernetes.io/region=us-west1-c
kubectl label node/${NODES[0]} failure-domain.beta.kubernetes.io/zone=us-west1-a --overwrite=true
kubectl label node/${NODES[1]} failure-domain.beta.kubernetes.io/zone=us-west1-b --overwrite=true
kubectl label node/${NODES[2]} failure-domain.beta.kubernetes.io/zone=us-west1-c --overwrite=true



2.  Create db namespace and bootstrap m3 db - only if required

Code Block
languagebash
themeMidnight
titleBootstrap M3db
kubectl -n training port-forward svc/m3coordinator-m3db-cluster 7201

curl -vvv -X POST http://localhost:7201/api/v1/database/create -d '{
  "type": "cluster",
  "namespaceName": "collectd",
  "retentionTime": "168h",
  "numShards": "64",
  "replicationFactor": "3",
  "hosts": [
        {
            "id": "m3db-cluster-rep0-0",
            "isolationGroup": "us-west1-a",
            "zone": "embedded",
            "weight": 100,
            "address": "m3db-cluster-rep0-0.m3dbnode-m3db-cluster:9000",
            "port": 9000
        },
        {
            "id": "m3db-cluster-rep1-0",
            "isolationGroup": "us-west1-b",
            "zone": "embedded",
            "weight": 100,
            "address": "m3db-cluster-rep1-0.m3dbnode-m3db-cluster:9000",
            "port": 9000
        },
        {
            "id": "m3db-cluster-rep2-0",
            "isolationGroup": "us-west1-c",
            "zone": "embedded",
            "weight": 100,
            "address": "m3db-cluster-rep2-0.m3dbnode-m3db-cluster:9000",
            "port": 9000
        }
    ]
}'

...