当前位置: 首页 > news >正文

k8s生成StarRocks集群模版

集群由1个fe+3个be组成,满足以下要求:

1、由3个pod组成,每pod分配2c4g

2、第一个pod里有一个be与一个fe,同在一个容器里,fe配置jvm内存设置为1024mb,be的jvm内存设置为1024MB

3、第二第三个pod里分别有一个be,jvm内存设置为2048MB

4、starrocks使用3.4.2镜像,已内置 Java 11

5、需要把数据挂载出来

6、pod需要再不同的node机器上

1. 第一个 Pod(FE + BE 共享 Pod)​

# pod-fe-with-be.yaml
apiVersion: v1
kind: Pod
metadata:name: starrocks-fe-with-belabels:app: starrockscomponent: fe
spec:containers:# FE 容器- name: feimage: starrocks/starrocks:3.4.2imagePullPolicy: IfNotPresentports:- containerPort: 9030  # HTTP 端口- containerPort: 9010  # BEACON 端口env:- name: JAVA_OPTSvalue: "-Xmx1024m -Xms1024m"  # FE JVM 1GBvolumeMounts:- name: fe-storagemountPath: /var/lib/starrocks/feresources:requests:cpu: "1"memory: "2Gi"limits:cpu: "1"memory: "2Gi"# 与 FE 同 Pod 的 BE 容器- name: beimage: starrocks/starrocks:3.4.2imagePullPolicy: IfNotPresentports:- containerPort: 9060  # BE 主端口env:- name: JAVA_OPTSvalue: "-Xmx1024m -Xms1024m"  # BE JVM 1GBvolumeMounts:- name: be-storage-1mountPath: /var/lib/starrocks/beresources:requests:cpu: "1"memory: "2Gi"limits:cpu: "1"memory: "2Gi"affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: ["starrocks"]topologyKey: kubernetes.io/hostnamevolumes:# FE 数据卷- name: fe-storagepersistentVolumeClaim:claimName: fe-pvc# BE 数据卷- name: be-storage-1persistentVolumeClaim:claimName: be-pvc-1

2. 第二个 Pod(独立 BE)

# pod-be-2.yaml
apiVersion: v1
kind: Pod
metadata:name: starrocks-be-2labels:app: starrockscomponent: be
spec:containers:- name: beimage: starrocks/starrocks:3.4.2imagePullPolicy: IfNotPresentports:- containerPort: 9060env:- name: JAVA_OPTSvalue: "-Xmx2048m -Xms2048m"  # BE JVM 2GBvolumeMounts:- name: be-storage-2mountPath: /var/lib/starrocks/beresources:requests:cpu: "1"memory: "2Gi"limits:cpu: "1"memory: "2Gi"affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: ["starrocks"]topologyKey: kubernetes.io/hostnamevolumes:- name: be-storage-2persistentVolumeClaim:claimName: be-pvc-2

3. 第三个 Pod(独立 BE)

# pod-be-3.yaml
apiVersion: v1
kind: Pod
metadata:name: starrocks-be-3labels:app: starrockscomponent: be
spec:containers:- name: beimage: starrocks/starrocks:3.4.2imagePullPolicy: IfNotPresentports:- containerPort: 9060env:- name: JAVA_OPTSvalue: "-Xmx2048m -Xms2048m"  # BE JVM 2GBvolumeMounts:- name: be-storage-3mountPath: /var/lib/starrocks/beresources:requests:cpu: "1"memory: "2Gi"limits:cpu: "1"memory: "2Gi"affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: ["starrocks"]topologyKey: kubernetes.io/hostnamevolumes:- name: be-storage-3persistentVolumeClaim:claimName: be-pvc-3

​4. 数据卷声明(PVC)

# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: fe-pvc
spec:accessModes:- ReadWriteOncestorageClassName: "ssd-storage"  # 替换为实际存储类resources:requests:storage: 100Gi---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: be-pvc-1
spec:accessModes:- ReadWriteOncestorageClassName: "ssd-storage"resources:requests:storage: 500Gi---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: be-pvc-2
spec:accessModes:- ReadWriteOncestorageClassName: "ssd-storage"resources:requests:storage: 500Gi---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: be-pvc-3
spec:accessModes:- ReadWriteOncestorageClassName: "ssd-storage"resources:requests:storage: 500Gi

配置说明​

  1. ​资源分配​

    • ​FE + BE Pod​​:FE 和 BE 容器各占 1C/2G,总和为 2C/4G
    • ​独立 BE Pod​​:BE 容器独占 2C/4G,但 JVM 内存限制为 2GB(需确保容器内存足够)。
  2. ​节点隔离​

    • 使用 podAntiAffinity 强制每个 Pod 调度到不同节点(通过 topologyKey: kubernetes.io/hostname)。
  3. ​存储隔离​

    • FE 和每个 BE 均挂载独立 PVC,路径分别为 /var/lib/starrocks/fe 和 /var/lib/starrocks/be
  4. ​版本验证​

    • 镜像 starrocks:3.4.2 已内置 Java 11,无需额外配置。

部署步骤​

  1. 创建 StorageClass
  2. 应用 PVC 和 Pod 配置:
    kubectl apply -f pvc.yaml
    kubectl apply -f pod-fe-with-be.yaml
    kubectl apply -f pod-be-2.yaml
    kubectl apply -f pod-be-3.yaml

注意事项​

  • ​内存风险​​:BE 容器的 JVM 内存(2GB)接近 Pod 内存限制(4GB),建议实际部署时预留更多内存或优化 JVM 参数。
  • ​存储类​​:替换 ssd-storage 为实际存储类型(如 gp2standard)。
  • ​网络策略​​:确保 Kubernetes 集群节点间网络互通(尤其是 BE 之间的通信)。

相关文章:

  • π0.5:带开放世界泛化的视觉-语言-动作模型
  • 鸿蒙OSS文件(视频/图片)压缩上传组件-能够增删改查
  • Harbor2.0仓库镜像清理策略
  • 考研系列-计算机组成原理第六章、总线
  • Servlet (简单的servlet的hello world程序)
  • HK1RBOX K8 RK3528 Via浏览器_插件_央视频的组合验证(失败)
  • AVFormatContext 再分析
  • python+adafruit_pca9685 测试舵机存储当前角度
  • 中国区域250米归一化植被指数数据集(2000-2023)
  • 数据库3,
  • 前端Ui设计工具
  • BP 算法探秘 :神经网络的幕后引擎
  • 单值映射、多值映射
  • 单点登录(双token)的简单总结
  • C++ 类与对象(中)—— 默认成员函数与运算符重载的深度解析:构造函数,析构函数,拷贝构造函数,赋值运算符重载,普通取地址重载,const取地址重载
  • Java使用微信云服务HTTP API操作微信云开发数据库
  • WebGIS面试题目整合资料
  • 《TVM模式匹配实战:从DFPatternNode到DFPattern的高级用法》
  • PPIO X OWL:一键开启任务自动化的高效革命
  • Codeforces Round 1021 (Div. 2) D. Baggage Claim(建图)
  • 主播说联播丨六部门出台新政!来华买买买,实惠多多多
  • 中国航天员乘组完成在轨交接,神十九乘组将于29日返回地球
  • 辽宁省信访局副局长于江调任辽宁省监狱管理局局长
  • 文化体验+商业消费+服务创新,上海搭建入境旅游新模式
  • 苏迪曼杯即将在厦门打响,国羽向创纪录的14冠进军
  • 五一假期上海路网哪里易拥堵?怎么错峰更靠谱?研判报告来了