English | 简体中文
Open-Local
is a local disk management system composed of multiple components. With Open-Local
, using local storage in Kubernetes will be as simple as centralized storage.
Feature | Open-Local Version | K8S Version |
---|---|---|
Node Disk pooling | v0.1.0+ | 1.18-1.20 |
Dynamic Provisioning | v0.1.0+ | 1.20-1.22 |
Volume Expansion | v0.1.0+ | 1.20-1.22 |
Volume Snapshot | v0.1.0+ | 1.20-1.22 |
LVM/Block Device/Mountpoints as fs | v0.1.0+ | 1.18-1.20 |
Raw Block Device(volumeMode: Block) | v0.3.0+ | 1.20-1.22 |
IO-Throttling | v0.4.0+ | 1.20-1.22 |
CSI ephemeral volumes | v0.5.0+ | 1.20-1.22 |
IPv6 Support | v0.5.3+ | 1.20-1.22 |
SPDK host device | v0.6.0+ | 1.20-1.22 |
Read-write snapshot | v0.7.0+ | 1.20-1.22 |
┌─────────────────────────────────────────────────────────────────────────────┐
│ Master │
│ ┌───┬───┐ ┌────────────────┐ │
│ │Pod│PVC│ │ API-Server │ │
│ └───┴┬──┘ └────────────────┘ │
│ │ bound ▲ │
│ ▼ │ watch │
│ ┌────┐ ┌───────┴────────┐ │
│ │ PV │ │ Kube-Scheduler │ │
│ └────┘ ┌─┴────────────────┴─┐ │
│ ▲ │ open-local │ │
│ │ │ scheduler-extender │ │
│ │ ┌────►└────────────────────┘◄───┐ │
│ ┌──────────────────┐ │ │ ▲ │ │
│ │ NodeLocalStorage │ │create│ │ │ callback │
│ │ InitConfig │ ┌┴──────┴─────┐ ┌──────┴───────┐ ┌────┴────────┐ │
│ └──────────────────┘ │ External │ │ External │ │ External │ │
│ ▲ │ Provisioner │ │ Resizer │ │ Snapshotter │ │
│ │ watch ├─────────────┤ ├──────────────┤ ├─────────────┤ │
│ ┌─────┴──────┐ ├─────────────┴──┴──────────────┴──┴─────────────┤GRPC│
│ │ open-local │ │ open-local │ │
│ │ controller │ │ CSI ControllerServer │ │
│ └─────┬──────┘ └────────────────────────────────────────────────┘ │
│ │ create │
└──────────┼──────────────────────────────────────────────────────────────────┘
│
┌──────────┼──────────────────────────────────────────────────────────────────┐
│ Worker │ │
│ │ │
│ ▼ ┌───────────┐ │
│ ┌──────────────────┐ │ Kubelet │ │
│ │ NodeLocalStorage │ └─────┬─────┘ │
│ └──────────────────┘ │ GRPC Shared Disks │
│ ▲ ▼ ┌───┐ ┌───┐ │
│ │ ┌────────────────┐ │sdb│ │sdc│ │
│ │ │ open-local │ create volume └───┘ └───┘ │
│ │ │ CSI NodeServer ├───────────────► VolumeGroup │
│ │ └────────────────┘ │
│ │ │
│ │ Exclusive Disks │
│ │ ┌─────────────┐ ┌───┐ │
│ │ update │ open-local │ init device │sdd│ │
│ └────────────────┤ agent ├────────────────► └───┘ │
│ └─────────────┘ Block Device │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Open-Local
contains four types of components:
Open-Local
also includes a monitoring dashboard:
Open-Local
has been widely used in production environments, and currently used products include:
More details here
Before adopting open-local in production, k8s users usually want to know use cases for open-local.
Please send us PR to update Use Cases with company
, use case
and since
for wider adoption.
Join us from DingTalk: Group No.34118035