Best practices
Local versus remote SSDs
Kubernetes provides you with an option of employing remote disks using dynamic provisioning or local storage which has to be preprovisioned.
Local storage provides great performance, but the data is not replicated and can be lost if the node fails. This option is ideal for databases, such as YugabyteDB, that manage their own replication and can guarantee high availability (HA).
Remote storage has slightly lower performance but the data is resilient to failures. This type of storage is absolutely essential for databases that do not offer HA (for example, traditional relational databases, such as PostgreSQL and MySQL).
The following table summarizes the features and when to use local or remote storage:
Feature | Local SSD storage | Remote SSD storage |
---|---|---|
Provision large disk capacity per node | Depends on cloud-provider | Yes |
Ideal deployment strategy with YugabyteDB | Use for latency sensitive apps Add remote storage to increase capacity / cost-efficient tiering |
Use for large disk capacity per node |
Disk storage resilient to failures | No | Yes |
Performance - latency | Lower | Higher |
Performance - throughput | Higher | Lower |
Typical cost characteristics | Lower | Higher |
Kubernetes provisioning scheme | Pre-provisioned | Dynamic provisioning |
It is generally preferable to use local storage where possible for higher performance and lower costs. For information on how to deploy YugabyteDB on Kubernetes using local SSDs, see Single-zone GKE.