Skip to content

中间件概览

部署架构

所有中间件通过 Helm Chart 部署到 K3s 集群,使用 local-path StorageClass 持久化数据。

k8s-apps/04-helm/
├── 01-zookeeper/     ZooKeeper 3.9.3
├── 02-mysql/         MySQL 8.0.35(原生 MySQL,tidb namespace)
├── 02-tidb/          TiDB 分布式数据库(可选替代方案)
├── 03-kafka/         Kafka 3.5.1
├── 04-storm/         Storm(可选)
├── 05-redis/         Redis HA(可选)
├── 05-rediscluster/  Redis Cluster 7.2.5(默认)
├── 06-minio/         MinIO 对象存储
├── 07-elasticsearch/ Elasticsearch 6.8.23(含拼音分词)
├── 07-elasticsearch7/ ES 7.x(可选)
├── 10-clickhouse/    ClickHouse(可选)
├── 11-apollo/        Apollo 配置中心(可选)
└── 12-rancher/       Rancher 管理平台(可选)

节点亲和性

每个中间件组件通过 nodeSelector 绑定特定节点标签,确保调度可控:

组件nodeSelector
ZooKeeperzookeeper: "true"
Kafkakafka: "true"
MySQLmysql: "true"
Redis Clusterrediscluster: "true"
MinIOminio: "true"
Elasticsearchelasticsearch: "true"

资源配置汇总

组件CPU 请求内存请求存储
ZooKeeper1c1Gi8Gi × 副本
Kafka1c2Gi按 logRetentionBytes
MySQL--PVC 动态分配
Redis Cluster--内存
MinIO--按需
Elasticsearch2c4Gi20Gi × 副本

服务发现

所有中间件通过 K8s Service 名称访问(集群内 DNS):

组件Service 地址
ZooKeeperzookeeper.yidun-infra.svc:2181
Kafkakafka-yidun-0.kafka-yidun-headless.yidun-infra:9092
MySQLmysql-yidun.tidb.svc:3306 或 NodePort 32000
Redisredis-cluster0-headless.yidun-infra.svc:6379
MinIOminio-yidun.yidun-infra.svc:9000 或 NodePort 31311
Elasticsearchelasticsearch-yidun-master.yidun-infra.svc:9200 或 NodePort 30092

各组件详细文档

内部使用文档,请勿外传