I have a working Kubernetes single master cluster with 14 worker nodes.
4 of those nodes host the web application, and 10 host the backend application.
Because of the way our architecture is thought out, I would sometimes need to only update a few nodes with the latest image and keep the other nodes on the old deployment image for a few more hours. (this is because, with certain updates, the newer webapp can't talk to the old backend app, so I need to split the infrastructure, to keep some nodes alive on the old version, while updating the others). I have spent many hours searching for an option in the documentation, but there doesn't seem to be an easy way of doing this with Kubernetes.
To update the applications, I'm currently using rolling updates, configured in yaml files:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
To apply the updates I basically run two commands:
kubectl apply -f webapp.yaml
kubectl apply -f backendapp.yaml
This all works well, but it becomes a real problem for the scenario that I described above. Anybody has a suggestion, a path that I could follow?
Thank you