创建 Helm 部署值文件

您为每个 Neo4j 集群成员创建一个 Helm 部署 YAML 文件,其中包含所有配置设置。

重要的配置参数

neo4j.name

从 Neo4j 5.0.0 开始,独立服务器和集群服务器没有区别。这意味着可以通过添加更多服务器将独立服务器升级到集群。所有 Neo4j 集群服务器都通过参数 neo4j.name 的值链接在一起。通过 Neo4j Helm 图表安装时,它们将加入由 neo4j.name 标识的集群。
neo4j.name 与 Helm 的 发布名称 不同,后者用于在 Kubernetes 中的其他地方引用集群服务器。
Helm 图表创建的所有其他 K8s 对象的名称和标签都源自 neo4j.name发布名称neo4j.name 参数是必需的,如果未指定,则安装将失败。neo4j.name 在命名空间内必须是唯一的。

如果要在一个命名空间中安装 2 个集群,则它们必须具有不同的 neo4j.name 值。

neo4j.minimumClusterSize

从 Neo4j 5.0.0 开始,独立服务器和集群服务器没有区别。默认情况下,集群中的服务器可以托管主数据库和辅助数据库。有关更多详细信息,请参阅 操作视图


默认情况下,neo4j.minimumClusterSize 设置为 1,这意味着服务器在无需等待其他服务器的情况下启动。安装集群时,应将 neo4j.minimumClusterSize 设置为集群中所需成员的数量。如果您稍后决定添加超过 neo4j.minimumClusterSize 的额外集群服务器,则需要使用 Cypher 命令 ENABLE SERVER 手动启用它。从 Neo4j 5.20 开始,您还可以使用配置参数 neo4j.operations.enableServer 在服务器加入集群时自动启用它。有关更多信息,请参阅水平扩展

neo4j.resources

Neo4j 集群成员的大小由 neo4j.resources.cpuneo4j.resources.memory 参数的值定义。Neo4j 实例的最小值为 0.5 个 CPU 和 2GB 内存。如果提供的无效值或小于最小值,Helm 将抛出错误,例如

Error: template: neo4j/templates/_helpers.tpl:157:11: executing "neo4j.resources.evaluateCPU" at <fail (printf "Provided cpu value %s is less than minimum. \n %s" (.Values.neo4j.resources.cpu) (include "neo4j.resources.invalidCPUMessage" .))>: error calling fail: Provided cpu value 0.25 is less than minimum.
 cpu value cannot be less than 0.5 or 500m

有关更多信息,请参阅配置资源分配

neo4j.password

neo4j 用户的密码。所有集群成员都必须设置相同的密码。
如果您未提供密码,Neo4j Helm 图表将自动为您生成一个。(请记下它。)

您不能使用 neo4j 作为初始密码,因为这是默认密码。

neo4j.editionneo4j.acceptLicenseAgreement

默认情况下,Helm 图表安装 Neo4j 社区版。
如果您想安装 Neo4j 企业版,请设置配置参数 edition: "enterprise",并在您拥有有效许可证的情况下将 neo4j.acceptLicenseAgreement 设置为 "yes" 以确认许可证合规性,或者如果您想接受链接:Neo4j 评估许可证,则将其设置为 "eval"
有关如何获取 Neo4j 企业版有效许可证的更多信息,请参阅https://neo4j.ac.cn/licensing/ 和链接:https://neo4j.ac.cn/terms/licensing/,或使用表单联系 Neo4j

volumes.data

volumes.data 参数将每个集群成员的 data 卷挂载映射到该成员的持久卷。有关更多信息,请参阅卷挂载和持久卷

有关所有 Neo4j Helm 图表配置选项的详细信息,请参阅配置 Neo4j Helm 部署

为每个服务器创建 values.yaml 文件

根据您的 Kubernetes 环境选择选项卡,并使用提供的示例为您的每个集群服务器创建一个 YAML 文件,其中包含所有配置设置。

本指南假设 YAML 文件名为 server-1.values.yamlserver-2.values.yamlserver-3.values.yaml

这些示例使用供应商提供的存储类。如果您想使用其他类型的存储类,例如区域磁盘,请查阅云供应商文档以了解如何创建新的存储类。

neo4j:
  name: "my-cluster"
  minimumClusterSize: 3
  resources:
    cpu: "0.5"
    memory: "2Gi"
  password: "my-password"
  edition: "enterprise"
  acceptLicenseAgreement: "yes"

volumes:
  data:
    mode: "dynamic"
    dynamic:
      # * premium-rwo provisions SSD disks (recommended)
      # * standard-rwo provisions balanced SSD-backed disks
      # * standard provisions HDD disks
      storageClassName: premium-rwo
neo4j:
  name: "my-cluster"
  minimumClusterSize: 3
  resources:
    cpu: "0.5"
    memory: "2Gi"
  password: "my-password"
  acceptLicenseAgreement: "yes"

volumes:
  data:
    mode: "dynamic"
    dynamic:
     # gp2 is a general-purpose SSD volume
     storageClassName: gp2
neo4j:
  name: "my-cluster"
  minimumClusterSize: 3
  resources:
    cpu: "0.5"
    memory: "2Gi"
  password: "my-password"
  acceptLicenseAgreement: "yes"

volumes:
  data:
    mode: "dynamic"
    dynamic:
      # * managed-csi-premium provisions premium SSD disks (recommended)
      # * managed-csi provisions standard SSD backed disks
      storageClassName: managed-csi-premium