[
https://issues.jboss.org/browse/ISPN-6673?page=com.atlassian.jira.plugin....
]
Sebastian Łaskawiec commented on ISPN-6673:
-------------------------------------------
The Rolling update for Kubernetes and OpenShift looks the following:
# Create a new app for infinispan (I'm using my own image with additional health and
readiness checks) - {{slaskawi/infinispan-ru-1}}:
{code}
/opt/jboss/infinispan-server/bin/is_ready.sh
#!/bin/bash
for i in `seq 1 10`;
do
sleep 1s
/opt/jboss/infinispan-server/bin/ispn-cli.sh -c --controller=$(hostname -i):9990
'/subsystem=datagrid-infinispan/cache-container=clustered/distributed-cache=*:read-attribute(name=cache-rebalancing-status)'
| awk '/result/{gsub("\"", "", $3); print $3}' | awk
'{if(NR>1)print}' | grep -v 'PENDING\|IN_PROGRESS\|SUSPENDED'
if [ $? -eq 0 ]; then
exit 0
fi
done
exit 1
{code}
{code}
/opt/jboss/infinispan-server/bin/is_healthy.sh
#!/bin/bash
for i in `seq 1 10`;
do
sleep 1s
/opt/jboss/infinispan-server/bin/ispn-cli.sh -c --controller=$(hostname -i):9990
'/:read-attribute(name=server-state)' | awk
'/result/{gsub("\"", "", $3); print $3}' | grep running
if [ $? -eq 0 ]; then
exit 0
fi
done
exit 1
{code}
Since the rebalance status might vary from run to run (imagine a node joining the
cluster), there are two ways to deal with it - either use wait as I did or set
{{successThreshold}} to a number larger than 1 in the deployment configuration.
#
Implement Rolling Upgrades with Kubernetes
------------------------------------------
Key: ISPN-6673
URL:
https://issues.jboss.org/browse/ISPN-6673
Project: Infinispan
Issue Type: Feature Request
Components: Cloud Integrations
Reporter: Sebastian Łaskawiec
Assignee: Sebastian Łaskawiec
There are 2 mechanisms which seems to do the same but are totally different:
* [Kubernetes Rolling Update|http://kubernetes.io/docs/user-guide/rolling-updates/] -
replaces Pods in controllable fashon
* [Infinispan Rolling
Updgrate|http://infinispan.org/docs/stable/user_guide/user_guide.html#_Ro...] -
a procedure for upgrading Infinispan or changing the configuration
Kubernetes Rolling Updates can be used very easily for changing the configuration however
if changes are not runtime-compatible, one might loss data. Potential way to avoid this is
to use a Cache Store. All other changes must be propagated using Infinispan Rolling
Upgrade procedure.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)