feat: add more services

This commit is contained in:
Sun-ZhenXing
2026-02-23 18:10:02 +08:00
parent 2544127de2
commit 530e6d7f5d
48 changed files with 2895 additions and 2 deletions

15
src/cassandra/Makefile Normal file
View File

@@ -0,0 +1,15 @@
HELM_RELEASE_NAME ?= cassandra
HELM_APPLICATION_NAME ?= cassandra
HELM_NAMESPACE ?= cassandra
HELM_DIR ?= ./helm
HELM_CHART_VERSION ?=
HELM_VALUES_FILE ?= ./values.yaml
HELM_OCI_REGISTRY ?=
HELM_OCI_NAMESPACE ?=
HELM_OCI_USERNAME ?=
HELM_OCI_PASSWORD ?=
HELM_REPO_NAME ?= k8ssandra
HELM_REPO_URL ?= https://helm.k8ssandra.io/stable
HELM_CHART_REPO ?= $(HELM_REPO_NAME)/k8ssandra-operator
include ../_template/base.mk

82
src/cassandra/README.md Normal file
View File

@@ -0,0 +1,82 @@
# Apache Cassandra (K8ssandra)
## Introduction
Apache Cassandra is an open-source distributed NoSQL database management system designed to handle large amounts of data across many commodity servers. This deployment uses K8ssandra Operator, which provides a Kubernetes-native way to manage Cassandra clusters.
K8ssandra is a cloud-native distribution of Apache Cassandra that runs on Kubernetes. It includes automation for operational tasks such as repairs, backups, and monitoring.
## Installation
To install Cassandra, run:
```bash
make install
```
## Usage
After installation, you can create a Cassandra cluster:
```bash
# Check if operator is running
kubectl get pods -n cassandra
# Create a Cassandra cluster
kubectl apply -f - <<EOF
apiVersion: k8ssandra.io/v1alpha1
kind: K8ssandraCluster
metadata:
name: demo
namespace: cassandra
spec:
cassandra:
serverVersion: "4.0.1"
datacenters:
- metadata:
name: dc1
size: 3
storageConfig:
cassandraDataVolumeClaimSpec:
storageClassName: standard
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
config:
jvmOptions:
heapSize: 1Gi
EOF
```
## Configuration
The default configuration includes:
- K8ssandra Operator for managing Cassandra clusters
- Support for Cassandra 4.x
- Medusa for backup management
- Reaper for repair scheduling
- Metrics collection via Prometheus
## Features
- **Automated Repairs**: Reaper handles repair scheduling
- **Backup/Restore**: Medusa provides backup and restore capabilities
- **Monitoring**: Integrated Prometheus metrics
- **Multi-DC Support**: Deploy across multiple data centers
## Connecting to Cassandra
```bash
# Get CQLSH access
kubectl exec -it demo-dc1-default-sts-0 -n cassandra -c cassandra -- cqlsh
```
## Uninstall
To uninstall:
```bash
make uninstall
```

View File

@@ -0,0 +1,82 @@
# Apache Cassandra (K8ssandra)
## 简介
Apache Cassandra 是一个开源的分布式 NoSQL 数据库管理系统,设计用于在大量商用服务器上处理大量数据。此部署使用 K8ssandra Operator它提供了一种 Kubernetes 原生的方式来管理 Cassandra 集群。
K8ssandra 是 Apache Cassandra 的云原生发行版,可在 Kubernetes 上运行。它包括修复、备份和监控等运维任务的自动化。
## 安装
安装 Cassandra
```bash
make install
```
## 使用
安装完成后,您可以创建 Cassandra 集群:
```bash
# 检查 operator 是否运行
kubectl get pods -n cassandra
# 创建 Cassandra 集群
kubectl apply -f - <<EOF
apiVersion: k8ssandra.io/v1alpha1
kind: K8ssandraCluster
metadata:
name: demo
namespace: cassandra
spec:
cassandra:
serverVersion: "4.0.1"
datacenters:
- metadata:
name: dc1
size: 3
storageConfig:
cassandraDataVolumeClaimSpec:
storageClassName: standard
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
config:
jvmOptions:
heapSize: 1Gi
EOF
```
## 配置
默认配置包括:
- 用于管理 Cassandra 集群的 K8ssandra Operator
- 支持 Cassandra 4.x
- Medusa 用于备份管理
- Reaper 用于修复调度
- 通过 Prometheus 收集指标
## 功能
- **自动修复**: Reaper 处理修复调度
- **备份/恢复**: Medusa 提供备份和恢复功能
- **监控**: 集成的 Prometheus 指标
- **多 DC 支持**: 跨多个数据中心部署
## 连接 Cassandra
```bash
# 获取 CQLSH 访问
kubectl exec -it demo-dc1-default-sts-0 -n cassandra -c cassandra -- cqlsh
```
## 卸载
卸载:
```bash
make uninstall
```

28
src/cassandra/values.yaml Normal file
View File

@@ -0,0 +1,28 @@
# K8ssandra Operator Configuration
# https://github.com/k8ssandra/k8ssandra-operator
# Operator configuration
replicaCount: 1
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
# Medusa backup configuration
medusa:
enabled: false
# Prometheus monitoring
monitoring:
enabled: false
# Cluster-wide configuration
clusterScoped: false
# Webhook configuration
webhook:
enabled: false