跨 AKS 集群部署单个 Neo4j 集群
使用 Neo4j Helm 图表,您可以使用负载均衡器和 Azure 应用程序网关在多个 AKS 集群上部署 Neo4j 集群。
下图是具有三个主服务器(在三个不同的 AKS 集群上运行)的 Neo4j 集群的示意图。
该图显示了三个 Neo4j 实例,每个实例都在不同可用性区域中的不同 AKS 集群上运行,作为单个 Neo4j 集群的一部分。每个 AKS 集群还包括每个 Neo4j 实例的内部负载均衡器和 LIST 发现方法。它们允许 Neo4j 实例相互通信。可以使用 Azure 应用程序网关从 Kubernetes 外部访问 Neo4j 集群。
以下步骤是如何在多 AKS 集群上部署 Neo4j 集群的示例。
在三个可用性区域中创建三个 AKS 集群
您必须具有 |
-
安装
az
命令行界面 (CLI) (https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). -
创建一个资源组来托管您的虚拟网络。此示例在
eastus
位置创建了一个名为my-RG
的资源组az group create \ --name my-RG \ --location eastus
示例输出{ "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG", "location": "eastus", "managedBy": null, "name": "my-RG", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
-
在此资源组中,创建一个 Azure 虚拟网络 (VNet)。此示例创建了一个名为
my-VNet
的虚拟网络,其虚拟网络地址范围为10.30.0.0/16
az network vnet create \ --name my-VNet \ --resource-group my-RG \ --address-prefixes 10.30.0.0/16
示例输出{ "newVNet": { "addressSpace": { "addressPrefixes": [ "10.30.0.0/16" ] }, "bgpCommunities": null, "ddosProtectionPlan": null, "dhcpOptions": { "dnsServers": [] }, "enableDdosProtection": false, "enableVmProtection": null, "encryption": null, "etag": "W/\"97953f32-55fe-4821-aedd-ec7a800127e3\"", "extendedLocation": null, "flowTimeoutInMinutes": null, "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet", "ipAllocations": null, "location": "eastus", "name": "my-VNet", "provisioningState": "Succeeded", "resourceGroup": "my-RG", "resourceGuid": "4ed2a9f4-580e-4424-800b-1065ed9ad0a2", "subnets": [], "tags": { "Owner Department": "Engineering - Neo4j" }, "type": "Microsoft.Network/virtualNetworks", "virtualNetworkPeerings": [] } }
-
向您创建的虚拟网络 (
my-VNet
) 添加四个子网。它们将由您将在每个 AKS 集群上部署的 Azure 资源使用。子网地址范围在虚拟网络的地址空间内必须是唯一的。az network vnet subnet create -g my-RG --vnet-name my-VNet -n subnet1 \ --address-prefixes 10.30.1.0/24 az network vnet subnet create -g my-RG --vnet-name my-VNet -n subnet2 \ --address-prefixes 10.30.2.0/24 az network vnet subnet create -g my-RG --vnet-name my-VNet -n subnet3 \ --address-prefixes 10.30.3.0/24 az network vnet subnet create -g my-RG --vnet-name my-VNet -n subnet4 \ --address-prefixes 10.30.4.0/24
示例输出{ "addressPrefix": "10.30.1.0/24", "addressPrefixes": null, "applicationGatewayIpConfigurations": null, "delegations": [], "etag": "W/\"32bb3a61-c446-4c20-b596-d92b6b9e2e9f\"", "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet1", "ipAllocations": null, "ipConfigurationProfiles": null, "ipConfigurations": null, "name": "subnet1", "natGateway": null, "networkSecurityGroup": null, "privateEndpointNetworkPolicies": "Disabled", "privateEndpoints": null, "privateLinkServiceNetworkPolicies": "Enabled", "provisioningState": "Succeeded", "purpose": null, "resourceGroup": "my-RG", "resourceNavigationLinks": null, "routeTable": null, "serviceAssociationLinks": null, "serviceEndpointPolicies": null, "serviceEndpoints": null, "type": "Microsoft.Network/virtualNetworks/subnets" } { "addressPrefix": "10.30.2.0/24", "addressPrefixes": null, "applicationGatewayIpConfigurations": null, "delegations": [], "etag": "W/\"8ec29708-e749-4a89-813e-0290c3c9a6f7\"", "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet2", "ipAllocations": null, "ipConfigurationProfiles": null, "ipConfigurations": null, "name": "subnet2", "natGateway": null, "networkSecurityGroup": null, "privateEndpointNetworkPolicies": "Disabled", "privateEndpoints": null, "privateLinkServiceNetworkPolicies": "Enabled", "provisioningState": "Succeeded", "purpose": null, "resourceGroup": "my-RG", "resourceNavigationLinks": null, "routeTable": null, "serviceAssociationLinks": null, "serviceEndpointPolicies": null, "serviceEndpoints": null, "type": "Microsoft.Network/virtualNetworks/subnets" } { "addressPrefix": "10.30.3.0/24", "addressPrefixes": null, "applicationGatewayIpConfigurations": null, "delegations": [], "etag": "W/\"4b9ba2be-e385-48e7-be24-c52c79769c3a\"", "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet3", "ipAllocations": null, "ipConfigurationProfiles": null, "ipConfigurations": null, "name": "subnet3", "natGateway": null, "networkSecurityGroup": null, "privateEndpointNetworkPolicies": "Disabled", "privateEndpoints": null, "privateLinkServiceNetworkPolicies": "Enabled", "provisioningState": "Succeeded", "purpose": null, "resourceGroup": "my-RG", "resourceNavigationLinks": null, "routeTable": null, "serviceAssociationLinks": null, "serviceEndpointPolicies": null, "serviceEndpoints": null, "type": "Microsoft.Network/virtualNetworks/subnets" } { "addressPrefix": "10.30.4.0/24", "addressPrefixes": null, "applicationGatewayIpConfigurations": null, "delegations": [], "etag": "W/\"ff08c2d1-2166-4c64-9892-3cac9bc20fd1\"", "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet4", "ipAllocations": null, "ipConfigurationProfiles": null, "ipConfigurations": null, "name": "subnet4", "natGateway": null, "networkSecurityGroup": null, "privateEndpointNetworkPolicies": "Disabled", "privateEndpoints": null, "privateLinkServiceNetworkPolicies": "Enabled", "provisioningState": "Succeeded", "purpose": null, "resourceGroup": "my-RG", "resourceNavigationLinks": null, "routeTable": null, "serviceAssociationLinks": null, "serviceEndpointPolicies": null, "serviceEndpoints": null, "type": "Microsoft.Network/virtualNetworks/subnets" }
-
现在您可以创建 AKS 集群了。通过运行以下命令(它使用
jq
命令)或从子网创建输出中复制来获取subnet1
的订阅 ID。az network vnet subnet show -g my-RG --vnet-name my-VNet -n subnet1 --output json | jq .id
示例输出"/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/
-
在您的资源组中,使用订阅 ID 创建第一个名为
my-aks-cluster-a
且包含 5 个节点的 AKS 集群。az aks create --name my-aks-cluster-a --node-count=5 --zones 1 --vnet-subnet-id "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet1" -g my-RG az aks create --name my-aks-cluster-b --node-count=5 --zones 1 --vnet-subnet-id "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet2" -g my-RG az aks create --name my-aks-cluster-c --node-count=5 --zones 1 --vnet-subnet-id "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet3" -g my-RG
示例输出Waiting for AAD role to propagate[################################ ] 90.0000% { "aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { "availabilityZones": [ "1" ], "count": 5, "creationData": null, "currentOrchestratorVersion": "1.23.8", "enableAutoScaling": false, "enableEncryptionAtHost": false, "enableFips": false, "enableNodePublicIp": false, "enableUltraSsd": false, "gpuInstanceProfile": null, "hostGroupId": null, "kubeletConfig": null, "kubeletDiskType": "OS", "linuxOsConfig": null, "maxCount": null, "maxPods": 110, "minCount": null, "mode": "System", "name": "nodepool1", "nodeImageVersion": "AKSUbuntu-1804gen2containerd-2022.08.23", "nodeLabels": null, "nodePublicIpPrefixId": null, "nodeTaints": null, "orchestratorVersion": "1.23.8", "osDiskSizeGb": 128, "osDiskType": "Managed", "osSku": "Ubuntu", "osType": "Linux", "podSubnetId": null, "powerState": { "code": "Running" }, "provisioningState": "Succeeded", "proximityPlacementGroupId": null, "scaleDownMode": null, "scaleSetEvictionPolicy": null, "scaleSetPriority": null, "spotMaxPrice": null, "tags": null, "type": "VirtualMachineScaleSets", "upgradeSettings": { "maxSurge": null }, "vmSize": "Standard_DS2_v2", "vnetSubnetId": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/my-RG/providers/Microsoft.Network/virtualNetworks/my-VNet/subnets/subnet1", "workloadRuntime": null } ], "apiServerAccessProfile": null, "autoScalerProfile": null, "autoUpgradeProfile": null, "azurePortalFqdn": "my-aks-my-rg-5b9ae5-bd2a82e4.portal.hcp.eastus.azmk8s.io", "currentKubernetesVersion": "1.23.8", "disableLocalAccounts": false, "diskEncryptionSetId": null, "dnsPrefix": "my-aks-my-RG-5b9ae5", "enablePodSecurityPolicy": null, "enableRbac": true, "extendedLocation": null, "fqdn": "my-aks-my-rg-5b9ae5-bd2a82e4.hcp.eastus.azmk8s.io", "fqdnSubdomain": null, "httpProxyConfig": null, "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourcegroups/my-RG/providers/Microsoft.ContainerService/managedClusters/my-aks-cluster-a", "identity": { "principalId": "16334702-6bbd-44a0-8090-a7739b881974", "tenantId": "54e85725-ed2a-49a4-a19e-11c8d29f9a0f", "type": "SystemAssigned", "userAssignedIdentities": null }, "identityProfile": { "kubeletidentity": { "clientId": "a445b12d-52d9-4564-b5cf-daa98bf17ab8", "objectId": "91cc2d37-0407-4916-a4cd-51849fbc6541", "resourceId": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourcegroups/MC_my-RG_my-aks-cluster-a_eastus/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-aks-cluster-a-agentpool" } }, "kubernetesVersion": "1.23.8", "linuxProfile": { "adminUsername": "azureuser", "ssh": { "publicKeys": [ { "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDzCbi+J6eJq9RTsCGFFhTk/PQrl8jNzbFYsPZeu4BKvyrRz7JfWRgzGLu6OTJynuUejKy6XlNaqYsEoZMsFdOMMYoK/bVCCUwOaOrpGAqNF9dCKbKkEnA6iv6WgEIfVHGoCtMc3pBRU0R9rfWYpf3h7WT/oShnaLzVhPUG+4Jblx3K2tRsZ5+2AEgQeniXUgtZRvPes8qXfr/OES7M7owI0VuOVgiuJo3//sCvDavGJwSAgUECzcPYOEwBfmTWNleYrluiEWc7Ye5Y+W8j86V4L/vh4LRs14WZ92Jt6K3QhshGSpY0tcLnxg7fskdZDtdcSWIPWpbQLdTxdIETKe66qDiijLXkpw2m3XRe8nTc5ysoXGaKvzASAWyR2FYpYvmaSSGe/65jeQMsDjSsEXnLRoDG2A3aHy5yV44QXSd4N9/+Znmea1WnB+tvOUuAlhIgjWvprRPXyhZHdybuQipXPErfYg4G83HWMwh35D5qBAV3DeZUIYYATFszYdGfp3ghdu1LBVXsgH/sHaMZXp9uy5PAP4jOxfGpho3k+UoQZHK3wwskxhK8/IiWpRPRPWUbfhUOilUdkQup8hyfVfGpW7htW3crFwXFbU1LG5gDNrars0i3OHqT1snFB3R38vxDaXdOZCEVPSQAevOj3Q/WYfO2m5o+gp2sEQtEp4mG+w== my.popova@gmail.com\n" } ] } }, "location": "eastus", "maxAgentPools": 100, "name": "my-aks-cluster-a", "networkProfile": { "dnsServiceIp": "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "ipFamilies": [ "IPv4" ], "loadBalancerProfile": { "allocatedOutboundPorts": null, "effectiveOutboundIPs": [ { "id": "/subscriptions/5b9ae547-ce82-4834-b276-b72904ceaa84/resourceGroups/MC_my-RG_my-aks-cluster-a_eastus/providers/Microsoft.Network/publicIPAddresses/e7480132-3f34-4f2d-bbc3-4e27e23e574c", "resourceGroup": "MC_my-RG_my-aks-cluster-a_eastus" } ], "enableMultipleStandardLoadBalancers": null, "idleTimeoutInMinutes": null, "managedOutboundIPs": { "count": 1, "countIpv6": null }, "outboundIPs": null, "outboundIpPrefixes": null }, "loadBalancerSku": "Standard", "natGatewayProfile": null, "networkMode": null, "networkPlugin": "kubenet", "networkPolicy": null, "outboundType": "loadBalancer", "podCidr": "10.244.0.0/16", "podCidrs": [ "10.244.0.0/16" ], "serviceCidr": "10.0.0.0/16", "serviceCidrs": [ "10.0.0.0/16" ] }, "nodeResourceGroup": "MC_my-RG_my-aks-cluster-a_eastus", "podIdentityProfile": null, "powerState": { "code": "Running" }, "privateFqdn": null, "privateLinkResources": null, "provisioningState": "Succeeded", "publicNetworkAccess": null, "resourceGroup": "my-RG", "securityProfile": { "azureKeyVaultKms": null, "defender": null }, "servicePrincipalProfile": { "clientId": "msi", "secret": null }, "sku": { "name": "Basic", "tier": "Free" }, "storageProfile": { "diskCsiDriver": { "enabled": true }, "fileCsiDriver": { "enabled": true }, "snapshotController": { "enabled": true } }, "systemData": null, "tags": { "Owner Department": "Engineering - Neo4j" }, "type": "Microsoft.ContainerService/ManagedClusters", "windowsProfile": null }
-
重复前两个步骤,创建另外两个 AKS 集群,分别命名为
my-aks-cluster-b
和my-aks-cluster-c
。 -
使用以下命令配置
kubectl
以使用您的 AKS 集群az aks get-credentials --name my-aks-cluster-a --admin -g my-RG az aks get-credentials --name my-aks-cluster-b --admin -g my-RG az aks get-credentials --name my-aks-cluster-c --admin -g my-RG
示例输出Merged "my-aks-cluster-a-admin" as current context in /Users/myuser/.kube/config Merged "my-aks-cluster-b-admin" as current context in /Users/myuser/.kube/config Merged "my-aks-cluster-c-admin" as current context in /Users/myuser/.kube/config
在某些罕见情况下,如果您的部署/环境中无法使用通常的 K8S Kubernetes 发现方法,您可以使用 |
在每个 AKS 集群上安装 Neo4j
在每个 AKS 集群上安装 neo4j/neo4j helm chart。LoadBalancer
服务将配置为使用与集群关联的子网中的私有 IP 地址。例如,my-aks-cluster-a
使用 subnet1
,其范围为 10.30.1.0/24
,因此可以使用 10.30.1.1-10.30.1.255
中的任何地址。在示例中,以下用于说明
-
server-1: 10.30.1.101
-
server-2: 10.30.2.101
-
server-3: 10.30.3.101
在部署负载均衡器时,您必须在资源组中拥有所有者权限或具有 |
为每个集群成员创建一个 values.yaml 文件
为每个 Neo4j 集群成员创建一个自定义 YAML 文件,例如,server-1.values.yaml、server-2.values.yaml、server-3.values.yaml。
属性 services.neo4j.spec.loadBalancerIP
必须设置为 subnet1
示例中的 IP 地址。
-
使用以下命令切换到第一个 AKS 集群
my-aks-cluster-a-admin
的上下文kubectl config use-context my-aks-cluster-a-admin
-
在 server-1.values.yaml 中,将以下设置添加到 Neo4j 配置
server-1.values.yaml# Neo4j Configuration (yaml format) neo4j: name: multicluster minimumClusterSize: 3 acceptLicenseAgreement: "yes" edition: enterprise volumes: data: mode: defaultStorageClass services: neo4j: annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" spec: loadBalancerIP: 10.30.1.101 multiCluster: true config: dbms.cluster.discovery.resolver_type: LIST dbms.cluster.discovery.endpoints: "10.30.1.101:5000, 10.30.2.101:5000, 10.30.3.101:5000" server.discovery.advertised_address: "10.30.1.101:5000" server.cluster.advertised_address: "10.30.1.101:6000" server.cluster.raft.advertised_address: "10.30.1.101:7000" server.bolt.advertised_address: "10.30.1.101:7687" server.routing.advertised_address: "10.30.1.101:7688"
-
在 server-2.values.yaml 中,将以下设置添加到 Neo4j 配置
server-2.values.yaml# Neo4j Configuration (yaml format) neo4j: name: multicluster minimumClusterSize: 3 acceptLicenseAgreement: "yes" edition: enterprise volumes: data: mode: defaultStorageClass services: neo4j: spec: loadBalancerIP: 10.30.2.101 multiCluster: true config: dbms.cluster.discovery.resolver_type: LIST dbms.cluster.discovery.endpoints: "10.30.1.101:5000, 10.30.2.101:5000, 10.30.3.101:5000" server.discovery.advertised_address: "10.30.2.101:5000" server.cluster.advertised_address: "10.30.2.101:6000" server.cluster.raft.advertised_address: "10.30.2.101:7000" server.bolt.advertised_address: "10.30.2.101:7687" server.routing.advertised_address: "10.30.2.101:7688"
-
在 server-3.values.yaml 中,将以下设置添加到 Neo4j 配置
server-3.values.yaml# Neo4j Configuration (yaml format) neo4j: name: multicluster minimumClusterSize: 3 acceptLicenseAgreement: "yes" edition: enterprise volumes: data: mode: defaultStorageClass services: neo4j: spec: loadBalancerIP: 10.30.3.101 multiCluster: true config: dbms.cluster.discovery.resolver_type: LIST dbms.cluster.discovery.endpoints: "10.30.1.101:5000, 10.30.2.101:5000, 10.30.3.101:5000" server.discovery.advertised_address: "10.30.3.101:5000" server.cluster.advertised_address: "10.30.3.101:6000" server.cluster.raft.advertised_address: "10.30.3.101:7000" server.bolt.advertised_address: "10.30.3.101:7687" server.routing.advertised_address: "10.30.3.101:7688"
部署 Neo4j 集群
-
使用以下命令将上下文切换到
my-aks-cluster-a-admin
kubectl config use-context my-aks-cluster-a-admin
-
使用 server-1.values.yaml 安装
server-1
helm install server-1 neo4j/neo4j -f /path/to/server-1.values.yaml
示例输出NAME: server-1 LAST DEPLOYED: Tue Nov 1 14:53:54 2022 NAMESPACE: neo4j STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thank you for installing neo4j. Your release "server-1" has been installed in namespace "neo4j". The neo4j user's password has been set to "my-password". This release creates a single member of a Neo4j cluster. It will not become ready until it is able to form a working Neo4j cluster by joining other Neo4j servers. To create a working cluster at least 3 servers are required. Once you have a working Neo4j cluster, you can access the Neo4j browser using the IP address of the multicluster-lb-neo4j service eg. http://[SERVICE_IP]:7474 Graphs are everywhere!
-
切换到
my-aks-cluster-b-admin
上下文。kubectl config use-context my-aks-cluster-b-admin
-
使用 server-2.values.yaml 安装
server-2
helm install server-2 neo4j/neo4j -f /path/to/server-2.values.yaml
-
切换到
my-aks-cluster-c-admin
上下文。kubectl config use-context my-aks-cluster-c-admin
-
使用 server-3.values.yaml 安装
server-3
helm install server-3 neo4j/neo4j -f /path/to/server-3.values.yaml
-
切换到每个上下文,并检查其中的 Pod 是否处于
READY
状态,以及它们是否已形成集群。kubectl get pods
NAME READY STATUS RESTARTS AGE server-1-0 1/1 Running 0 4m51s
创建 Azure 应用程序网关
您可以创建应用程序网关,以便从 AKS 集群外部访问 Neo4j 集群。
-
登录到 Azure 门户。
-
在“搜索资源”区域中,查找应用程序网关。
将打开“负载均衡 | 应用程序网关”窗口。 -
点击“创建”按钮。
-
在“基本信息”选项卡上,配置以下设置
-
从“资源组”下拉列表中选择
my-RG
。 -
在“应用程序网关/名称”字段中添加应用程序网关的名称。
-
从“区域”下拉列表中选择您的区域。在本例中,为美国东部。
-
禁用自动缩放。
-
从“虚拟网络”下拉列表中选择
my-VNet
。 -
从“子网”下拉列表中选择
subnet4 | 10.30.4.0/24
。 -
点击“下一步:前端 >”。
-
-
在“前端”选项卡上,配置公共 IP 地址
-
从“前端 IP 地址类型”中选择“公共”。
-
在“公共 IP 地址”中,点击“添加新”。
-
为其添加名称,例如
apg-public
。 -
点击“确定”。
-
-
点击“下一步:后端 >”。
-
-
在“后端”选项卡上,添加负载均衡器的 EXTERNAL-IP
-
点击“添加后端池”。
-
为池添加名称,例如
neo4j-cluster
。 -
在“目标类型”列表中,在“目标”下添加负载均衡器的 EXTERNAL-IP。
-
-
点击“添加”。
-
点击“下一步:配置 >”。
-
-
在“配置”选项卡上,配置路由规则
-
点击“添加路由规则”,并为端口
7474
配置路由规则。-
在“规则名称”字段中,添加规则的名称,例如
rule7474
。 -
对于“优先级”,添加
1
。 -
在“侦听器”选项卡上,添加“侦听器”的名称(例如,
listener7474
),选择“前端 IP”为“公共”,并添加端口7474
。 -
在“后端目标”选项卡上,配置后端目标和设置
-
从“目标类型”下拉列表中,选择“后端池”为
neo4j-cluster
。 -
对于“后端目标”,点击“添加新”并配置。
-
在“后端设置名称”中,键入
settings7474
。 -
在“后端端口”中,键入
7474
。
-
-
-
点击“添加”。
-
-
点击“添加路由规则”,并为端口
7687
配置路由规则。-
在“规则名称”字段中,添加规则的名称,例如
rule7687
。 -
对于“优先级”,添加
2
。 -
在“侦听器”选项卡上,添加“侦听器”的名称(例如,
listener7687
),选择“前端 IP”为“公共”,并添加端口7687
。 -
在“后端目标”选项卡上,配置后端目标和设置
-
从“目标类型”下拉列表中,选择“后端池”为
neo4j-cluster
。 -
对于“后端目标”,点击“添加新”并配置。
-
在“后端设置名称”中,键入
settings7687
。 -
在“后端端口”中,键入
7687
。
-
-
-
点击“添加”。
-
-
点击“下一步:标签 >”。
-
点击“下一步:查看 + 创建 >”,查看您的配置,然后点击“创建”。
-