Added commands for creating Redis cluster in k8s-deploy-thirdparty.sh
This commit is contained in:
parent
53b240a72b
commit
7c72233387
2
k8s/.env
2
k8s/.env
@ -1,6 +1,6 @@
|
||||
# Can be either basic (with single instance of Zookeeper, Kafka and Redis) or high-availability (with Zookeeper, Kafka and Redis in cluster modes).
|
||||
# According to the deployment type corresponding kubernetes resources will be deployed (see content of the directories ./basic and ./high-availability for details).
|
||||
DEPLOYMENT_TYPE=basic
|
||||
DEPLOYMENT_TYPE=high-availability
|
||||
|
||||
# Database used by ThingsBoard, can be either postgres (PostgreSQL) or cassandra (Cassandra).
|
||||
# According to the database type corresponding kubernetes resources will be deployed (see postgres.yml, cassandra.yml for details).
|
||||
|
||||
@ -53,19 +53,7 @@ Execute the following command to deploy thirdparty resources:
|
||||
$ ./k8s-deploy-thirdparty.sh
|
||||
`
|
||||
|
||||
Get list of the running tb-redis pods and verify that all of them are in running state:
|
||||
|
||||
`
|
||||
$ kubectl get pods -l app=tb-redis
|
||||
`
|
||||
|
||||
If you are running ThingsBoard in `high-availability` `DEPLOYMENT_TYPE` execute the following command to create redis cluster:
|
||||
|
||||
`
|
||||
$ kubectl exec -it tb-redis-0 -- redis-cli --cluster create --cluster-replicas 1 $(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
|
||||
`
|
||||
|
||||
Type **'yes'** when prompted.
|
||||
Type **'yes'** when prompted, if you are running ThingsBoard in `high-availability` `DEPLOYMENT_TYPE` for the first time and don't configured Redis cluster.
|
||||
|
||||
Execute the following command to deploy resources:
|
||||
|
||||
|
||||
@ -23,3 +23,23 @@ kubectl apply -f common/tb-namespace.yml
|
||||
kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
|
||||
|
||||
kubectl apply -f $DEPLOYMENT_TYPE/thirdparty.yml
|
||||
|
||||
|
||||
if [ "$DEPLOYMENT_TYPE" == "high-availability" ]; then
|
||||
echo -n "waiting for all redis pods to be ready";
|
||||
while [[ $(kubectl get pods tb-redis-5 -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}' 2>/dev/null) != "True" ]];
|
||||
do
|
||||
echo -n "." && sleep 5;
|
||||
done
|
||||
|
||||
if [[ $(kubectl exec -it tb-redis-0 -- redis-cli cluster info 2>&1 | head -n 1) =~ "cluster_state:ok" ]]
|
||||
then
|
||||
echo "redis cluster is already configured"
|
||||
else
|
||||
echo "starting redis cluster"
|
||||
redisNodes=$(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
|
||||
kubectl exec -it tb-redis-0 -- redis-cli --cluster create --cluster-replicas 1 $redisNodes
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user