Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ MongoDB server version: 4.0.3
* Follow [compile tutorial](docs/how-to-compile.md) to learn how to compile EloqDoc-RocksDB and EloqDocRocksDBCloud from scratch.
* Follow [deploy cluster](docs/how-to-deploy-cluster.md) to learn how to deploy an EloqDoc-RocksDBCloud cluster.
* Follow [configuration description](docs/configuration-description.md) to learn major configuration parameters.

* Follow [Kubernetes deployment guide](docs/deploy-with-operator/README.md) to learn how to deploy EloqDoc on managed Kubernetes services (AWS EKS, Baidu CCE) using the Eloq Operator.
---

**Star This Repo ⭐** to Support Our Journey — Every Star Helps Us Reach More Developers!
111 changes: 111 additions & 0 deletions docs/deploy-with-operator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Deploy EloqDoc with Eloq Operator

This directory contains deployment guides for running EloqDoc on different cloud platforms using the Eloq Operator.

## Overview

The Eloq Operator simplifies the deployment and management of EloqDoc clusters by providing:
- Declarative configuration through Kubernetes Custom Resources (CR)
- Automated lifecycle management (deployment, scaling, updates)
- Cloud-native integration with various cloud providers
- Simplified storage configuration (local SSD, cloud object storage)

## Deployment Guides by Cloud Provider

| Cloud Provider | Platform | Guide |
| --------------- | -------- | ------------------------------------- |
| **AWS** | EKS | [Deploy on AWS EKS](./aws-eks.md) |
| **Baidu Cloud** | CCE | [Deploy on Baidu CCE](./baidu-cce.md) |

1. **Choose your cloud platform** from the guides above
2. **Follow the platform-specific guide** for detailed step-by-step instructions
3. **Deploy the Eloq Operator** and required components
4. **Apply the EloqDoc CustomResource** to create your cluster
5. **Connect and test** your EloqDoc deployment

## Common Prerequisites

Before deploying on any platform, ensure you have:

- `kubectl` installed (v1.28 or later)
- `helm` installed (v3.0 or later)
- Access to a Kubernetes cluster (v1.28 or later)
- Appropriate cloud provider CLI tools and credentials

## Common Components

All deployments require the following components:

1. **cert-manager** (v1.19.0+)
- Manages TLS certificates for webhook endpoints
- Required by the Eloq Operator

2. **OpenEBS** (v4.3.0+)
- Provides local persistent volume provisioning
- Supports XFS filesystem with quota

3. **Eloq Operator**
- Manages EloqDoc cluster lifecycle
- Deploys and configures EloqDoc instances
- Handles storage and networking configuration

## Deployment Architecture

EloqDoc uses a hybrid storage approach:

- **Block Storage (Raft Log)**
- Cloud block storage (EBS/CDS) for raft consensus logs
- Used by the log service for distributed consensus
- Persistent volumes for durability and consistency
- Provisioned via CSI drivers (EBS CSI/CDS CSI)

- **Local Storage (Hot Data)**
- Fast local SSDs for cache and active data
- XFS filesystem with quota support
- Provisioned via OpenEBS local PV

- **Object Storage (Cold Data)**
- Cloud object storage (S3/BOS) for persistent data
- Transaction logs and SST files
- Automatic bucket creation and lifecycle management


```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Specify language for fenced code block (ASCII diagram).

The ASCII architecture diagram at Line 67 should declare a language. Since it's a text diagram, use text or plaintext:

-```
+```text
 ┌─────────────────────────────────────────────────────────┐
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

67-67: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In docs/deploy-with-operator/README.md around line 67 the fenced code block
containing an ASCII architecture diagram does not declare a language; update the
opening fence to include a language identifier (e.g., ```text or ```plaintext)
so the diagram is treated as plain text and rendered/processed correctly by
markdown parsers and syntax highlighters.

┌─────────────────────────────────────────────────────────┐
│ Kubernetes Cluster │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ Eloq Operator │ │
│ │ (Namespace: eloq-operator-system) │ │
│ └────────────────────────────────────────────────┘ │
│ │ │
│ │ Manages │
│ ▼ │
│ ┌────────────────────────────────────────────────┐ │
│ │ EloqDoc Cluster (CR) │ │
│ │ ┌──────────────────────────────────────────┐ │ │
│ │ │ Frontend (MongoDB Protocol) │ │ │
│ │ └──────────────────────────────────────────┘ │ │
│ │ ┌──────────────────────────────────────────┐ │ │
│ │ │ TX Nodes (Transaction Processing) │ │ │
│ │ │ - Local SSD (XFS with quota) │ │ │
│ │ │ - Object Storage (S3/BOS) │ │ │
│ │ └──────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ Supporting Components │ │
│ │ - cert-manager (TLS certificates) │ │
│ │ - OpenEBS (Local PV provisioning) │ │
│ │ - CSI Drivers (Cloud disk management) │ │
│ └────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│ Storage
┌───────────────────────────────┐
│ Object Storage │
│ - Transaction Logs │
│ - Object Store Data │
└───────────────────────────────┘
```
Loading