The development life cycle of software systems goes from code, through testing, generating artifacts, even more testing, and eventually, deployment to production. The basic idea is that whenever a developer commits changes to their source control system (for example, GitHub), these changes are detected by the continuous integration (CI) system, which immediately runs the tests.
This is often followed by a review by peers and merging the code changes (or a pull request) from a feature branch or development branch into the master. In the context of Kubernetes, the CI system is also responsible for building the Docker images for the services and pushing them to the image registry. At this point, we have Docker images that contain new code. This is where the CD system comes in.
When a new image becomes available, the continuous delivery (CD) system will...