Description
This KB describes procedure to clear mnesia db for rabbitmq in tf-operator style contrail deployments. This procedure differs from the traditional procedure used in Ansible deployments or RHOSP style deployments.
Symptoms
There can be multiple reasons for clearing mnesia db which can be due to problems in other components where if any microservice is not consuming data as it should be due to which queue for rabbitmq can get filled up and get stuck in some cases.
[dcn contrail@cc-jumphost:~]$ kubectl -n tf exec rabbitmq1-rabbitmq-statefulset-0 -- sh -c '. /etc/rabbitmq/rabbitmq-common.env ; rabbitmqctl list_queues --silent --vhost $(rabbitmqctl list_vhosts --silent)' | awk '$2 != "0"'
vnc_config.controller0-k8s-cc.internalapi.dcn.opencontrail.net-8082-0 17
schema_transformer.controller2-k8s-cc.internalapi.dcn.opencontrail.net 33
-contrail-cloud-k8s-kube_manager.controller2-k8s-ca.internalapi.dcn.opencontrail.net 93
-contrail-cloud-k8s-kube_manager.controller1-k8s-ca.internalapi.dcn.opencontrail.net 124
svc_monitor.controller0-k8s-cc.internalapi.dcn.opencontrail.net 3
Solution
Below are pods for contrail microservices deployed via tf-operator style deployment
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 55d
analytics1-analytics-statefulset-1 4/4 Running 4 55d
analytics1-analytics-statefulset-2 4/4 Running 8 55d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 55d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 55d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 55d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 55d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 55d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 55d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 55d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 55d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 55d
config1-config-statefulset-0 7/7 Running 0 52m
config1-config-statefulset-1 7/7 Running 0 52m
config1-config-statefulset-2 7/7 Running 0 53m
configdb1-cassandra-statefulset-0 3/3 Running 7 55d
configdb1-cassandra-statefulset-1 3/3 Running 9 55d
configdb1-cassandra-statefulset-2 3/3 Running 9 55d
control1-control-statefulset-0 5/5 Running 15 55d
control1-control-statefulset-1 5/5 Running 11 55d
control1-control-statefulset-2 5/5 Running 15 55d
kubemanager1-kubemanager-statefulset-0 1/1 Running 0 23s
kubemanager1-kubemanager-statefulset-1 1/1 Running 0 26s
kubemanager1-kubemanager-statefulset-2 1/1 Running 0 31s
queryengine1-queryengine-statefulset-0 1/1 Running 2 55d
queryengine1-queryengine-statefulset-1 1/1 Running 1 55d
queryengine1-queryengine-statefulset-2 1/1 Running 1 55d
rabbitmq1-rabbitmq-statefulset-0 1/1 Running 0 55m
rabbitmq1-rabbitmq-statefulset-1 1/1 Running 0 55m
rabbitmq1-rabbitmq-statefulset-2 1/1 Running 0 55m
redis1-redis-statefulset-0 2/2 Running 2 55d
redis1-redis-statefulset-1 2/2 Running 4 55d
redis1-redis-statefulset-2 2/2 Running 2 55d
tf-operator-646fb557f-r4r4w 1/1 Running 2 55d
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 55d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 55d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 55d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 55d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 55d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 55d
webui1-webui-statefulset-0 2/2 Running 2 12d
webui1-webui-statefulset-1 2/2 Running 4 12d
webui1-webui-statefulset-2 2/2 Running 2 12d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 55d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 55d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 55d
NOTE: Mnesia is
a distributed database that RabbitMQ uses to store information about users, exchanges, queues, and bindings. DB cannot be deleted without stopping containers running rabbitmq which actively use mnesia db. In tf-operator style deployment, pods cannot be killed or stopped.
In order to stop rabbitmq we need to stop tf-operator and kubemanager pods and then proceed to rabbitmq pod.
tf-operator pod is configured as deployment
[dcn contrail@cc-jumphost:~]$ kubectl get deployments.apps -n tf
NAME READY UP-TO-DATE AVAILABLE AGE
tf-operator 1/1 1 1 56d
Scale down the deployment for tf-operator to 0 this would kill tf-operator pod
[dcn contrail@cc-jumphost:~]$ kubectl -n tf scale deployments tf-operator --replicas=0
deployment.apps/tf-operator scaled
Once tf-operator pod is terminated we can verify via getting all pods and looking for tf-operator, here pod is not present which means its already in terminated state
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 56d
analytics1-analytics-statefulset-1 4/4 Running 4 56d
analytics1-analytics-statefulset-2 4/4 Running 8 56d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 56d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 56d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 56d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 56d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 56d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 56d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 56d
config1-config-statefulset-0 7/7 Running 0 15h
config1-config-statefulset-1 7/7 Running 0 15h
config1-config-statefulset-2 7/7 Running 0 15h
configdb1-cassandra-statefulset-0 3/3 Running 7 56d
configdb1-cassandra-statefulset-1 3/3 Running 9 56d
configdb1-cassandra-statefulset-2 3/3 Running 9 56d
control1-control-statefulset-0 5/5 Running 15 56d
control1-control-statefulset-1 5/5 Running 11 56d
control1-control-statefulset-2 5/5 Running 15 56d
kubemanager1-kubemanager-statefulset-0 1/1 Running 0 23h
kubemanager1-kubemanager-statefulset-1 1/1 Running 0 23h
kubemanager1-kubemanager-statefulset-2 1/1 Running 0 23h
queryengine1-queryengine-statefulset-0 1/1 Running 2 56d
queryengine1-queryengine-statefulset-1 1/1 Running 1 56d
queryengine1-queryengine-statefulset-2 1/1 Running 1 56d
rabbitmq1-rabbitmq-statefulset-0 1/1 Running 0 24h
rabbitmq1-rabbitmq-statefulset-1 1/1 Running 0 24h
rabbitmq1-rabbitmq-statefulset-2 1/1 Running 0 24h
redis1-redis-statefulset-0 2/2 Running 2 56d
redis1-redis-statefulset-1 2/2 Running 4 56d
redis1-redis-statefulset-2 2/2 Running 2 56d
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 56d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 56d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 56d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 56d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 56d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 56d
webui1-webui-statefulset-0 2/2 Running 2 13d
webui1-webui-statefulset-1 2/2 Running 4 13d
webui1-webui-statefulset-2 2/2 Running 2 13d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 56d
Scale down the kubeManager pods to 0 as shown below, kubeManager is deployed as a statefulset, kubeManager pod can be seen as terminating state in below snippets
[dcn contrail@cc-jumphost:~]$ kubectl -n tf scale statefulset/kubemanager1-kubemanager-statefulset --replicas=0
statefulset.apps/kubemanager1-kubemanager-statefulset scaled
Below two kubeManager pods are in terminating state and one of pod is already in terminated so its not present in list
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 56d
analytics1-analytics-statefulset-1 4/4 Running 4 56d
analytics1-analytics-statefulset-2 4/4 Running 8 56d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 56d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 56d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 56d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 56d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 56d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 56d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 56d
config1-config-statefulset-0 7/7 Running 0 15h
config1-config-statefulset-1 7/7 Running 0 15h
config1-config-statefulset-2 7/7 Running 0 15h
configdb1-cassandra-statefulset-0 3/3 Running 7 56d
configdb1-cassandra-statefulset-1 3/3 Running 9 56d
configdb1-cassandra-statefulset-2 3/3 Running 9 56d
control1-control-statefulset-0 5/5 Running 15 56d
control1-control-statefulset-1 5/5 Running 11 56d
control1-control-statefulset-2 5/5 Running 15 56d
kubemanager1-kubemanager-statefulset-1 1/1 Terminating 0 23h
kubemanager1-kubemanager-statefulset-2 1/1 Terminating 0 23h
queryengine1-queryengine-statefulset-0 1/1 Running 2 56d
queryengine1-queryengine-statefulset-1 1/1 Running 1 56d
queryengine1-queryengine-statefulset-2 1/1 Running 1 56d
rabbitmq1-rabbitmq-statefulset-0 1/1 Running 0 24h
rabbitmq1-rabbitmq-statefulset-1 1/1 Running 0 24h
rabbitmq1-rabbitmq-statefulset-2 1/1 Running 0 24h
redis1-redis-statefulset-0 2/2 Running 2 56d
redis1-redis-statefulset-1 2/2 Running 4 56d
redis1-redis-statefulset-2 2/2 Running 2 56d
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 56d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 56d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 56d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 56d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 56d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 56d
webui1-webui-statefulset-0 2/2 Running 2 13d
webui1-webui-statefulset-1 2/2 Running 4 13d
webui1-webui-statefulset-2 2/2 Running 2 13d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 56d
[dcn contrail@cc-jumphost:~]$
Verify the mounts for rabbitmq pod, rabbitmq-data is the directory which stores mnesia db which is mounted on
/var/lib/rabbitmq
[dcn contrail@cc-jumphost:~]$ kubectl describe pods -n tf rabbitmq1-rabbitmq-statefulset-0
Name: rabbitmq1-rabbitmq-statefulset-0
Namespace: tf
Priority: 2000001000
Priority Class Name: system-node-critical
Node: controller1-k8s-cc.internalapi/100.78.168.22
Start Time: Wed, 10 Apr 2024 10:37:19 +0200
Labels: controller-revision-hash=rabbitmq1-rabbitmq-statefulset-569b9cc868
rabbitmq=rabbitmq1
statefulset.kubernetes.io/pod-name=rabbitmq1-rabbitmq-statefulset-0
tf_manager=rabbitmq
Annotations: hostname: controller1-k8s-cc.internalapi.dcn.opencontrail.net
kubectl.kubernetes.io/restartedAt: 2024-04-10T10:36:16+02:00
Status: Running
IP: 100.78.168.22
IPs:
IP: 100.78.168.22
Controlled By: StatefulSet/rabbitmq1-rabbitmq-statefulset
Containers:
rabbitmq:
Container ID: cri-o://de82207d91cbd7e3aac700ffb887d72670dca709d33d550140da887ade4994fd
Image: 100.78.148.100:9798/contrail-nightly/contrail-external-rabbitmq:21.4.L2.329
Image ID: 100.78.148.100:9798/contrail-nightly/contrail-external-rabbitmq@sha256:8e132e036fcb7c468877a2126c999873e15eae76460cf462475189708c9de0ff
Port: <none>
Host Port: <none>
Command:
bash
/etc/contrailconfigmaps/run-rabbitmq.sh
State: Running
Started: Wed, 10 Apr 2024 10:37:19 +0200
Ready: True
Restart Count: 0
Environment:
POD_IP: (v1:status.podIP)
POD_NAME: rabbitmq1-rabbitmq-statefulset-0 (v1:metadata.name)
NODE_TYPE: config-database
LOG_LEVEL: SYS_DEBUG
Mounts:
/etc/certificates from rabbitmq1-secret-certificates (ro)
/etc/contrailconfigmaps from rabbitmq1-rabbitmq-volume (rw)
/etc/hosts from etc-hosts (ro)
/etc/localtime from etc-localtime (ro)
/etc/resolv.conf from etc-resolv (ro)
/etc/ssl/certs/kubernetes from ca-certs (ro)
/etc/timezone from etc-timezone (ro)
/var/crashes from var-crashes (rw)
/var/lib/rabbitmq from rabbitmq-data (rw)
/var/log/rabbitmq from rabbitmq-logs (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-l46gm (ro)
Scale down the rabbitmq stateful set
[dcn contrail@cc-jumphost:~]$ kubectl -n tf scale statefulset rabbitmq1-rabbitmq-statefulset --replicas=0
statefulset.apps/rabbitmq1-rabbitmq-statefulset scaled
rabbitmq pods can be seen as terminating state in below outputs
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 56d
analytics1-analytics-statefulset-1 4/4 Running 4 56d
analytics1-analytics-statefulset-2 4/4 Running 8 56d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 56d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 56d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 56d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 56d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 56d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 56d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 56d
config1-config-statefulset-0 7/7 Running 0 16h
config1-config-statefulset-1 7/7 Running 0 16h
config1-config-statefulset-2 7/7 Running 0 16h
configdb1-cassandra-statefulset-0 3/3 Running 7 56d
configdb1-cassandra-statefulset-1 3/3 Running 9 56d
configdb1-cassandra-statefulset-2 3/3 Running 9 56d
control1-control-statefulset-0 5/5 Running 15 56d
control1-control-statefulset-1 5/5 Running 11 56d
control1-control-statefulset-2 5/5 Running 15 56d
queryengine1-queryengine-statefulset-0 1/1 Running 2 56d
queryengine1-queryengine-statefulset-1 1/1 Running 1 56d
queryengine1-queryengine-statefulset-2 1/1 Running 1 56d
rabbitmq1-rabbitmq-statefulset-0 1/1 Terminating 0 25h
rabbitmq1-rabbitmq-statefulset-1 1/1 Terminating 0 25h
rabbitmq1-rabbitmq-statefulset-2 1/1 Terminating 0 25h
redis1-redis-statefulset-0 2/2 Running 2 56d
redis1-redis-statefulset-1 2/2 Running 4 56d
redis1-redis-statefulset-2 2/2 Running 2 56d
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 56d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 56d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 56d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 56d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 56d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 56d
webui1-webui-statefulset-0 2/2 Running 2 13d
webui1-webui-statefulset-1 2/2 Running 4 13d
webui1-webui-statefulset-2 2/2 Running 2 13d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 56d
Once rabbitmq pods are terminated, login to worker nodes where pods are hosted and navigate to rabbitmq-data directory which is mounted on
/var/lib/contrail/rabbitmq/
Pod hosted on worker nodes in cluster can be checked via below command
[dcn contrail@cc-jumphost:~]$ kubectl get pods -ntf -o wide | grep rabbitmq
rabbitmq1-rabbitmq-statefulset-0 1/1 Running 0 38m 100.78.168.22 controller1-k8s-cc.internalapi <none> <none>
rabbitmq1-rabbitmq-statefulset-1 1/1 Running 0 38m 100.78.168.21 controller0-k8s-cc.internalapi <none> <none>
rabbitmq1-rabbitmq-statefulset-2 1/1 Running 0 39m 100.78.168.23 controller2-k8s-cc.internalapi <none> <none>
Delete contents of mnesia on all worker nodes which are hosting rabbitmq pods
controller0
[root@controller0-k8s-cc contrail]# cd cd /var/lib/contrail/rabbitmq/
[root@controller0-k8s-cc rabbitmq]# ls -la
total 4
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 .
drwxr-xr-x. 9 root root 121 Feb 14 15:19 ..
-rw-------. 1 polkitd unbound 37 Apr 10 10:37 .erlang.cookie
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:38 mnesia
[root@controller0-k8s-cc rabbitmq]# ls -la mnesia/
total 8
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:38 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
drwxr-xr-x. 5 polkitd unbound 4096 Apr 11 11:41
[email protected]
-rw-r--r--. 1 polkitd unbound 194 Apr 10 10:38 rabbit@controller0-k8s-cc.internalapi.dcn.opencontrail.net-feature_flags
drwxr-xr-x. 2 polkitd unbound 6 Apr 10 10:38 rabbit@controller0-k8s-cc.internalapi.dcn.opencontrail.net-plugins-expand
[root@controller0-k8s-cc rabbitmq]# rm -rf mnesia/*
[root@controller0-k8s-cc rabbitmq]# ls -la mnesia/
total 0
drwxr-xr-x. 2 polkitd unbound 6 Apr 11 11:49 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
controller1
[contrail@controller1-k8s-cc ~]$ cd /var/lib/contrail/rabbitmq/
[contrail@controller1-k8s-cc rabbitmq]$ ls -la
total 4
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 .
drwxr-xr-x. 9 root root 121 Feb 14 15:19 ..
-rw-------. 1 polkitd unbound 37 Apr 10 10:37 .erlang.cookie
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:37 mnesia
[contrail@controller1-k8s-cc rabbitmq]$ ls -la mnesia/
total 8
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:37 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
drwxr-xr-x. 5 polkitd unbound 4096 Apr 11 11:40
[email protected]
-rw-r--r--. 1 polkitd unbound 194 Apr 10 10:37 rabbit@controller1-k8s-cc.internalapi.dcn.opencontrail.net-feature_flags
drwxr-xr-x. 2 polkitd unbound 6 Apr 10 10:37 rabbit@controller1-k8s-cc.internalapi.dcn.opencontrail.net-plugins-expand
[root@controller1-k8s-cc rabbitmq]# rm -rf mnesia/*
[root@controller1-k8s-cc rabbitmq]# ls -la mnesia/
total 0
drwxr-xr-x. 2 polkitd unbound 6 Apr 11 11:50 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
controller2
[root@controller2-k8s-cc contrail]# cd /var/lib/contrail/rabbitmq/
[root@controller2-k8s-cc rabbitmq]# ls -la
total 4
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 .
drwxr-xr-x. 9 root root 121 Feb 14 15:19 ..
-rw-------. 1 polkitd unbound 37 Apr 10 10:36 .erlang.cookie
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:37 mnesia
[root@controller2-k8s-cc rabbitmq]# ls -la mnesia/
total 8
drwxr-xr-x. 4 polkitd unbound 260 Apr 10 10:37 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
drwxr-xr-x. 5 polkitd unbound 4096 Apr 11 11:48
[email protected]
-rw-r--r--. 1 polkitd unbound 170 Apr 10 10:37 rabbit@controller2-k8s-cc.internalapi.dcn.opencontrail.net-feature_flags
drwxr-xr-x. 2 polkitd unbound 6 Apr 10 10:37 rabbit@controller2-k8s-cc.internalapi.dcn.opencontrail.net-plugins-expand
[root@controller2-k8s-cc rabbitmq]# rm -rf mnesia/*
[root@controller2-k8s-cc rabbitmq]#
[root@controller2-k8s-cc rabbitmq]#
[root@controller2-k8s-cc rabbitmq]#
[root@controller2-k8s-cc rabbitmq]# ls -la mnesia/
total 0
drwxr-xr-x. 2 polkitd unbound 6 Apr 11 11:50 .
drwxr-xr-x. 3 polkitd unbound 42 Feb 14 15:21 ..
[root@controller2-k8s-cc rabbitmq]# exit
exit
[contrail@controller2-k8s-cc ~]$
After mnesia directory is cleared on all nodes, tf-operator needs to be scaled back
[dcn contrail@cc-jumphost:~]$ kubectl -n tf scale deployment tf-operator --replicas=1
deployment.apps/tf-operator scaled
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 56d
analytics1-analytics-statefulset-1 4/4 Running 4 56d
analytics1-analytics-statefulset-2 4/4 Running 8 56d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 56d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 56d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 56d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 56d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 56d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 56d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 56d
config1-config-statefulset-0 7/7 Running 0 16h
config1-config-statefulset-1 7/7 Running 0 16h
config1-config-statefulset-2 7/7 Running 0 16h
configdb1-cassandra-statefulset-0 3/3 Running 7 56d
configdb1-cassandra-statefulset-1 3/3 Running 9 56d
configdb1-cassandra-statefulset-2 3/3 Running 9 56d
control1-control-statefulset-0 5/5 Running 15 56d
control1-control-statefulset-1 5/5 Running 11 56d
control1-control-statefulset-2 5/5 Running 15 56d
queryengine1-queryengine-statefulset-0 1/1 Running 2 56d
queryengine1-queryengine-statefulset-1 1/1 Running 1 56d
queryengine1-queryengine-statefulset-2 1/1 Running 1 56d
redis1-redis-statefulset-0 2/2 Running 2 56d
redis1-redis-statefulset-1 2/2 Running 4 56d
redis1-redis-statefulset-2 2/2 Running 2 56d
tf-operator-646fb557f-mtb6z 1/1 Running 0 9s
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 56d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 56d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 56d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 56d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 56d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 56d
webui1-webui-statefulset-0 2/2 Running 2 13d
webui1-webui-statefulset-1 2/2 Running 4 13d
webui1-webui-statefulset-2 2/2 Running 2 13d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 56d
tf-operator is scaled back, further it will automatically scale kubemanager pods and rabbitmq pods
[dcn contrail@cc-jumphost:~]$ kubectl get pods -n tf
NAME READY STATUS RESTARTS AGE
analytics1-analytics-statefulset-0 4/4 Running 4 56d
analytics1-analytics-statefulset-1 4/4 Running 4 56d
analytics1-analytics-statefulset-2 4/4 Running 8 56d
analyticsalarm1-analyticsalarm-statefulset-0 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-1 4/4 Running 4 56d
analyticsalarm1-analyticsalarm-statefulset-2 4/4 Running 8 56d
analyticsdb1-cassandra-statefulset-0 3/3 Running 3 56d
analyticsdb1-cassandra-statefulset-1 3/3 Running 6 56d
analyticsdb1-cassandra-statefulset-2 3/3 Running 3 56d
analyticssnmp1-analyticssnmp-statefulset-0 4/4 Running 8 56d
analyticssnmp1-analyticssnmp-statefulset-1 4/4 Running 4 56d
analyticssnmp1-analyticssnmp-statefulset-2 4/4 Running 4 56d
config1-config-statefulset-0 7/7 Running 0 16h
config1-config-statefulset-1 7/7 Running 0 16h
config1-config-statefulset-2 7/7 Running 0 16h
configdb1-cassandra-statefulset-0 3/3 Running 7 56d
configdb1-cassandra-statefulset-1 3/3 Running 9 56d
configdb1-cassandra-statefulset-2 3/3 Running 9 56d
control1-control-statefulset-0 5/5 Running 15 56d
control1-control-statefulset-1 5/5 Running 11 56d
control1-control-statefulset-2 5/5 Running 15 56d
kubemanager1-kubemanager-statefulset-0 1/1 Running 0 3s
kubemanager1-kubemanager-statefulset-1 1/1 Running 0 3s
kubemanager1-kubemanager-statefulset-2 1/1 Running 0 3s
queryengine1-queryengine-statefulset-0 1/1 Running 2 56d
queryengine1-queryengine-statefulset-1 1/1 Running 1 56d
queryengine1-queryengine-statefulset-2 1/1 Running 1 56d
rabbitmq1-rabbitmq-statefulset-0 1/1 Running 0 3s
rabbitmq1-rabbitmq-statefulset-1 1/1 Running 0 3s
rabbitmq1-rabbitmq-statefulset-2 1/1 Running 0 3s
redis1-redis-statefulset-0 2/2 Running 2 56d
redis1-redis-statefulset-1 2/2 Running 4 56d
redis1-redis-statefulset-2 2/2 Running 2 56d
tf-operator-646fb557f-mtb6z 1/1 Running 0 24s
vrouter1-vrouter-daemonset-9s4xb 3/3 Running 9 56d
vrouter1-vrouter-daemonset-f6v97 3/3 Running 6 56d
vrouter1-vrouter-daemonset-fnb8s 3/3 Running 3 56d
vrouter1-vrouter-daemonset-nrk9t 3/3 Running 6 56d
vrouter1-vrouter-daemonset-pksrt 3/3 Running 9 56d
vrouter1-vrouter-daemonset-z927z 3/3 Running 3 56d
webui1-webui-statefulset-0 2/2 Running 2 13d
webui1-webui-statefulset-1 2/2 Running 4 13d
webui1-webui-statefulset-2 2/2 Running 2 13d
zookeeper1-zookeeper-statefulset-0 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-1 1/1 Running 3 56d
zookeeper1-zookeeper-statefulset-2 1/1 Running 2 56d
Modification History
KB Checked
[Contrail Cloud 16] Clearing mnesia db in tf-operator deployments