Use different tags. Usually, that means don't use the default "latest" tag for your image. Use versioned tags, commit has tags, sequentially-increasing tags, or some similar scheme to have a different name for the image. For instance, instead of using `myuser/myapp`, create and use `myuser/myapp:r1`, `myuser/myapp:r2`, etc.
Then, you can simply patch the image name in the manifest, and as long as you have defined your constraints and checks, you will automatically perform a rolling update.
Integration with CI and CD systems usually means you use the commit hash as the tag name, so that it is known by all pieces in the chain.