...
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 |
---|
...
|
...
|
...
| |
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:
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 } ] }' |
...