Is there any benefit in using relational databases on K8s?

As far I as I understand K8s allows us to implement relatively easily horizontal scaling, deployment rollback and rolling deployments.

However, the moment our application uses a relational database these benefits seem to vaporize:

  1. Relational databases do not scale horizontally.
  2. Having explicit schema implies no rollback in a general case.
    • Rollback is hard If the DB schema changes are not backwards compatible
  3. Rolling deployments may mean having two versions of the code talk to one version of the schema - can be problematic in a general case.
    • New changes must be compatible with the old DB schema.

Am I missing anything? If I am right and we cannot take advantage of horizontal scaling, deployment rollbacks and rolling deployments (in a general case), what other reasons are there to use K8s?

Your thoughts are very much appreciated and welcome.

  1. Traditional RDBMSs don’t allow scaling. They allow read replicas at most. So you need to use distributed database like YugabyteDB.

2 and 3 are are problems with or without kubernetes.

For 2 - You have to look at backup / restoration, point in time recovery, etc.
For 3 - You breaking schema changes should be done in multiple steps
V1 App + V1 DB
V1.1 + V1/V1.1 DB
V1.1 + V1.1 DB
V1.2 + v1.1/V1.2 DB
V1.2 + v1.2 DB

Discloser: I work for Yugbayte