欢迎光临
我们一直在努力

如何用helm安装neo4j

Neo4j作为领先的图数据库,在AI领域尤其在知识图谱、RAG(Retrieval-Augmented Generation)和复杂推荐系统中扮演着核心角色。为了在生产环境中稳定、高效地运行Neo4j,我们通常需要将其部署到Kubernetes集群上。Helm Charts是K8s生态中最常用的包管理工具,能够极大地简化Neo4j的部署和管理。

本文将指导您如何使用官方Helm Chart部署一个生产级别的高可用(HA)Neo4j集群。

前提条件

您需要确保拥有以下工具和环境:

  1. 一个正在运行的Kubernetes集群(例如EKS, GKE, 或本地的Minikube)。
  2. kubectl 命令行工具,并配置好集群访问权限。
  3. 已安装最新版本的 helm

步骤一:添加Neo4j Helm仓库

首先,我们需要将Neo4j官方提供的Helm Chart仓库添加到本地配置中。


1
2
helm repo add neo4j https://neo4j-contrib.github.io/neo4j-helm
helm repo update

步骤二:准备部署所需的 values.yaml 文件

对于生产环境,我们不能使用默认设置。必须配置持久化存储、高可用(HA)模式以及适当的资源限制。以下是一个推荐的生产环境配置模板 (values-prod.yaml)。

注意: 您必须替换 storageClassauth 密码。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# values-prod.yaml

# 1. 认证信息:部署必需项,必须设置
auth:
  password: "YourStrongSecretPassword123"

# 2. 高可用配置:设置3个核心(Core)实例实现HA
core:
  replicas: 3
  # 设定资源限制,确保集群稳定性
  resources:
    requests:
      cpu: "2000m"
      memory: "4Gi"
    limits:
      cpu: "4000m"
      memory: "8Gi"

# 3. 持久化存储配置
persistence:
  enabled: true
  # 替换为您K8s集群中可用的StorageClass名称
  storageClass: "gp2"
  # 推荐的存储大小
  storageSize: "100Gi"

# 4. 禁用默认Browser Service (通常通过Ingress或NodePort访问)
neo4jAdmin:
  enabled: false

# 5. 许可证 (如果是企业版)
# license:
#   edition: "enterprise"

步骤三:执行高可用集群部署

使用准备好的 values-prod.yaml 文件部署Neo4j集群。我们将其命名为 neo4j-ha-prod


1
2
# 确保您在当前目录下创建了 values-prod.yaml
helm install neo4j-ha-prod neo4j/neo4j -f values-prod.yaml

部署完成后,Helm会输出相关信息。您可以使用以下命令检查部署状态:


1
kubectl get pods -l app.kubernetes.io/instance=neo4j-ha-prod

您应该能看到三个以 neo4j-ha-prod-core 开头的 Pod 处于 Running 状态。


1
2
3
4
5
# 示例输出
NAME                                  READY   STATUS    RESTARTS   AGE
neo4j-ha-prod-core-0                  1/1     Running   0          5m
neo4j-ha-prod-core-1                  1/1     Running   0          4m
neo4j-ha-prod-core-2                  1/1     Running   0          4m

步骤四:访问和验证Neo4j服务

Neo4j Chart默认创建了一个ClusterIP Service用于内部访问。要从外部访问数据库或Neo4j Browser,您可以使用 kubectl port-forward 进行临时访问,或者配置一个Ingress。

使用 Port-Forward 临时访问 (例如访问Browser/Bolt端口):

  1. 查找核心服务的名称:
    
    
    1
    2
    kubectl get svc | grep neo4j-ha-prod-core
    # 假设服务名为 neo4j-ha-prod-core
  2. 端口转发(Bolt 7687,Browser/HTTP 7474):
    
    
    1
    2
    # 将K8s集群内部的7474端口映射到本地的7474
    kubectl port-forward svc/neo4j-ha-prod-core 7474:7474 &

现在,您可以通过浏览器访问 http://localhost:7474,使用用户名 neo4j 和您在 values-prod.yaml 中设置的密码进行登录。您已成功部署了一个高可用的Neo4j集群,为您的AI应用提供了强大的图数据基础设施支持。

清理资源

当测试或项目结束需要删除部署时,使用 Helm 可以轻松清理所有相关的K8s资源(包括StatefulSet, Services, PVCs等)。


1
helm uninstall neo4j-ha-prod
【本站文章皆为原创,未经允许不得转载】:汤不热吧 » 如何用helm安装neo4j
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址