创建 Helm 部署 values 文件

你需要为每个 Neo4j 集群成员创建一个包含所有配置设置的 Helm 部署 YAML 文件。

重要配置参数

neo4j.name

独立服务器和集群服务器之间没有区别。这意味着可以通过增加更多服务器将独立服务器升级为集群。所有 Neo4j 集群服务器都通过 neo4j.name 参数的值关联在一起。当通过 Neo4j Helm chart 安装时,它们将加入由 neo4j.name 标识的集群。
neo4j.name 与 Helm release name(发布名称) 不同,后者用于在 Kubernetes 中的其他地方引用集群服务器。
由 Helm chart 创建的所有其他 K8s 对象名称和标签均派生自 neo4j.namerelease nameneo4j.name 参数是必填项,如果未指定,安装将会失败。neo4j.name 在命名空间内必须是唯一的。

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

neo4j.minimumClusterSize

独立服务器和集群服务器之间没有区别。默认情况下,集群中的服务器可以托管主数据库和从数据库。有关详细信息,请参阅操作视图
neo4j.minimumClusterSize 默认设置为 1,这意味着服务器启动时无需等待其他服务器。安装集群时,应将 neo4j.minimumClusterSize 设置为集群中预期的成员数量。如果你稍后决定添加超过 neo4j.minimumClusterSize 数量的额外集群服务器,则需要使用 Cypher 命令 ENABLE SERVER 手动启用它。你也可以使用配置参数 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 chart 将自动为你生成一个。(请务必记下它。)

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

neo4j.editionneo4j.acceptLicenseAgreement

默认情况下,Helm chart 安装的是 Neo4j 社区版(Community Edition)。
如果你想安装 Neo4j 企业版(Enterprise Edition),请设置配置参数 edition: "enterprise",并在拥有有效许可时将 neo4j.acceptLicenseAgreement 设置为 "yes",或者如果你想接受链接:Neo4j 评估许可,请设置为 "eval"
有关如何获取 Neo4j 企业版有效许可的更多信息,请参阅 /licensing/ 和 link:/terms/licensing/,或使用 联系 Neo4j 表单。

volumes.data

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

有关所有 Neo4j Helm chart 配置选项的详细信息,请参阅配置 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"
  edition: "enterprise"
  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"
  edition: "enterprise"
  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