欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker安裝部署neo4j的實(shí)戰(zhàn)過程

 更新時間:2023年05月11日 11:48:59   作者:滿眼清香  
Docker是一種容器化技術(shù),可以在Linux系統(tǒng)上部署應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于Docker安裝部署neo4j的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

前言

Neo4j是一個高性能的,NOSQL圖形數(shù)據(jù)庫,本身就支持集群部署,今天要搭建的就是neo4j的因果集群,其中分為:

核心節(jié)點(diǎn):core-server,可以對數(shù)據(jù)進(jìn)行讀寫的中心節(jié)點(diǎn),通過選舉確定leader,follower.

只讀節(jié)點(diǎn):read-replica,只提供數(shù)據(jù)訪問的只讀節(jié)點(diǎn),需要連接核心節(jié)點(diǎn),可以非常方便的進(jìn)行擴(kuò)展

一、Docker 安裝部署neo4j

第一步,從鏡像源中查找鏡像

docker search neo4j

第二步,拉取鏡像源

docker pull neo4j(:版本號) 
//缺省 “:版本號” 時默認(rèn)安裝latest版本的

第三步,查看本地鏡像,檢驗(yàn)是否拉取成功

docker images

啟動容器

docker run -d --name container_name -p 27474:7474 -p 27687:7687 -v /home/neo4j/data:/data -v /home/neo4j/logs:/logs -v /home/neo4j/conf:/var/lib/neo4j/conf -v /home/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=neo4j/password neo4j
-d --name container_name   //-d表示容器后臺運(yùn)行 --name指定容器名字
	-p 27474:7474 -p 27687:7687   //映射容器的端口號到宿主機(jī)的端口號;27474 為宿主機(jī)端口
	-v /home/neo4j/data:/data   //把容器內(nèi)的數(shù)據(jù)目錄掛載到宿主機(jī)的對應(yīng)目錄下
	-v /home/neo4j/logs:/logs   //掛載日志目錄
	-v /home/neo4j/conf:/var/lib/neo4j/conf   //掛載配置目錄
	-v /home/neo4j/import:/var/lib/neo4j/import   //掛載數(shù)據(jù)導(dǎo)入目錄
	--env NEO4J_AUTH=neo4j/password   //設(shè)定數(shù)據(jù)庫的名字的訪問密碼
	neo4j //指定使用的鏡像

修改配置文件

// 進(jìn)入容器配置目錄掛載在宿主機(jī)的對應(yīng)目錄,我這里是/home/neo4j/conf
cd /home/neo4j/conf
// vim編輯器打開neo4j.conf
vim neo4j.conf
// 進(jìn)行以下更改
//在文件配置末尾添加這一行
dbms.connectors.default_listen_address=0.0.0.0  //指定連接器的默認(rèn)監(jiān)聽ip為0.0.0.0,即允許任何ip連接到數(shù)據(jù)庫
//修改
dbms.connector.bolt.listen_address=0.0.0.0:7687  //取消注釋并把對bolt請求的監(jiān)聽“地址:端口”改為“0.0.0.0:7687”
dbms.connector.http.listen_address=0.0.0.0:7474  //取消注釋并把對http請求的監(jiān)聽“地址:端口”改為“0.0.0.0:7474”

重啟neo4j容器

二、源碼包安裝 neo4j

// 命令下載
curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz
// 解壓安裝
tar -axvf neo4j-community-3.4.5-unix.tar.gz

安裝目錄下找到conf目錄下的neo4j.conf文件,修改相應(yīng)配置

# 修改第22行l(wèi)oad csv時l路徑,在前面加個#,可從任意路徑讀取文件
#dbms.directories.import=import

# 修改35行和36行,設(shè)置JVM初始堆內(nèi)存和JVM最大堆內(nèi)存
# 生產(chǎn)環(huán)境給的JVM最大堆內(nèi)存越大越好,但是要小于機(jī)器的物理內(nèi)存
dbms.memory.heap.initial_size=5g
dbms.memory.heap.max_size=10g

# 修改46行,可以認(rèn)為這個是緩存,如果機(jī)器配置高,這個越大越好
dbms.memory.pagecache.size=10g

# 修改54行,去掉改行的#,可以遠(yuǎn)程通過ip訪問neo4j數(shù)據(jù)庫
dbms.connectors.default_listen_address=0.0.0.0

# 默認(rèn) bolt端口是7687,http端口是7474,https關(guān)口是7473,不修改下面3項(xiàng)也可以
# 修改71行,去掉#,設(shè)置http端口為7687,端口可以自定義,只要不和其他端口沖突就行
dbms.connector.bolt.listen_address=:7687

# 修改75行,去掉#,設(shè)置http端口為7474,端口可以自定義,只要不和其他端口沖突就行
dbms.connector.http.listen_address=:7474

# 修改79行,去掉#,設(shè)置http端口為7473,端口可以自定義,只要不和其他端口沖突就行
dbms.connector.https.listen_address=:7473

# 修改227行,去掉#,允許從遠(yuǎn)程url來load csv
dbms.security.allow_csv_import_from_file_urls=true

# 修改246行,允許使用neo4j-shell,類似于mysql 命令行之類的
dbms.shell.enabled=true

# 修改248行,去掉#,設(shè)置連接neo4j-shell的端口,一般都是localhost或者127.0.0.1,這樣安全,其他地址的話,一般使用https就行
dbms.shell.host=127.0.0.1

# 修改250行,去掉#,設(shè)置neo4j-shell端口,端口可以自定義,只要不和其他端口沖突就行
dbms.shell.port=1337

# 修改254行,設(shè)置neo4j可讀可寫
dbms.read_only=false

# 設(shè)置JDK,若系統(tǒng)默認(rèn)是jdk1.8及以上可以不需要設(shè)置
JAVA_HOME=/usr/java/jdk1.8.0_144
JRE_HOME=/usr/java/jdk1.8.0_144/jre

APOC下載

Neo4j插件APOC

將下載好的.jar文件直接放到neo4j安裝目錄下的plugins文件夾目錄下就可以了。不要解壓?。?!

配置

neo4j安裝目錄下conf文件夾里的neo4j.conf
將dbms.security.auth_enabled=false注釋掉

文件末尾加上:

dbms.sercurity.procedures.unrestricted=apoc.*
dbms.memory.pagecache.size=10g
dbms.memory.heap.initial_size=1g
dbms.memory.heap.max_size=4g

三、k8s搭建NEO4J因果集

此集群是有狀態(tài)的服務(wù),所以使用k8s的StatefulSet進(jìn)行部署,創(chuàng)建neo4j-core-server.yaml文件

部署NEO4J-CORE-SERVER集群

# 先創(chuàng)建neo4j的命名空間namespace
---
apiVersion: v1
kind: Namespace
metadata:
   name: neo4j
   labels:
     name: neo4j
     
---

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: neo4j-core
  namespace: neo4j
  labels:
    app: neo4j-core
spec:
  replicas: 2    # 部署2個core-server
  selector:
    matchLabels:
      app: neo4j-core
  serviceName: neo4j-core
  template:
    metadata:
      labels:
        app: neo4j-core
    spec:
      containers:
      - name: neo4j-core
        image: neo4j:3.5.5-enterprise   # 官方鏡像,3.5.5企業(yè)版
        imagePullPolicy: IfNotPresent
        env:    # 這里通過env,配置鏡像環(huán)境參數(shù),這是因?yàn)榇绥R像是通過這樣來進(jìn)行配置參數(shù)的
          - name: NEO4J_ACCEPT_LICENSE_AGREEMENT    # 接受證書協(xié)議,必須的
            value: "yes"
          - name: NEO4J_dbms_connectors_default__advertised__address  # 指定自身pod的ip地址,默認(rèn)為localhost,在集群中必須注明自身地址,這里直接用ip
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          - name: NEO4J_dbms_mode  # 節(jié)點(diǎn)的模式,選擇CORE,就是核心節(jié)點(diǎn)
            value: "CORE"
          - name: NEO4J_AUTH   # 一定要自定義初始驗(yàn)證的用戶名/密碼
            value: "neo4j/your-password"
          - name: NEO4J_causal__clustering_minimum__core__cluster__size__at__formation
            value: "2"
          - name: NEO4J_causal__clustering_minimum__core__cluster__size__at__runtime
            value: "2"
          - name: NEO4J_causal__clustering_discovery__type  # 默認(rèn)集群發(fā)現(xiàn)方式為LIST,這里寫不寫都行
            value: "LIST"
          - name: NEO4J_causal__clustering_initial__discovery__members  # 手動寫明集群中所有成員的ip:port,5000端口為集群發(fā)現(xiàn)端口
            value: "neo4j-core-0.neo4j-core.neo4j.svc.cluster.local:5000,neo4j-core-1.neo4j-core.neo4j.svc.cluster.local:5000"
          - name: NEO4J_causal__clustering_discovery__advertised__address  # 下面這三個必須定義,為節(jié)點(diǎn)自身的ip:port,相當(dāng)于節(jié)點(diǎn)自身的名稱,因?yàn)槟J(rèn)是會用自身hostname,但是在k8s中,無法單單通過hostname解析到ip地址,這樣定義的自身地址會無法識別
            value: $(NEO4J_dbms_connectors_default__advertised__address):5000
          - name: NEO4J_causalClustering_transactionAdvertisedAddress
            value: $(NEO4J_dbms_connectors_default__advertised__address):6000
          - name: NEO4J_causalClustering_raftAdvertisedAddress
            value: $(NEO4J_dbms_connectors_default__advertised__address):7000
        volumeMounts:
        - name: neo4j-core    # 掛載數(shù)據(jù)目錄/data
          mountPath: /data
  volumeClaimTemplates:
  - metadata:
      name: neo4j-core  # 這里name要和上面volumeMounts的name一致,才能綁定到對應(yīng)的pod
      annotations:
        volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"  # 這里是上一步創(chuàng)建的nfs動態(tài)卷name
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 2Gi   # 大小自定義
          
---

apiVersion: v1
kind: Service
metadata:
  name: neo4j-core
  namespace: neo4j
spec:
  selector:
    app: neo4j-core
  type: NodePort     # 這里用nodeport來開啟外網(wǎng)訪問,沒用traefik是因?yàn)?687的連接端口不是http訪問,需要4層負(fù)載,但是traefik不支持,所以只能通過nodeport來實(shí)現(xiàn)外網(wǎng)訪問,才能正常訪問7474端口的web管理界面。
  ports:
    - protocol: TCP
      name: http
      port: 7474
      nodePort: 27474
      targetPort: 7474
    - protocol: TCP
      name: blot
      port: 7687
      nodePort: 27687
      targetPort: 7687

執(zhí)行 yaml文件

kubectl create -f neo4j-core-server.yaml

【注】

1. 以上yaml文件中的注釋要看清楚,因?yàn)?因果集群的核心節(jié)點(diǎn)是采用的選舉方式來確定主節(jié)點(diǎn)的,所以最好是單數(shù)節(jié)點(diǎn),我這里只部署了2個節(jié)點(diǎn),只是因?yàn)橘Y源不太夠,測試而已,生產(chǎn)使用的話,最少3節(jié)點(diǎn)。

2. 在這里,我用的默認(rèn)的list的集群發(fā)現(xiàn)方式,有一點(diǎn)不好,就是如果增加節(jié)點(diǎn),需要自己手動寫上所有集群節(jié)點(diǎn)到列表中,且增加核心節(jié)點(diǎn)的時候,會比較麻煩。

    官方有三種發(fā)現(xiàn)方式,分別為LIST,DNS,K8S。
    DNS的發(fā)現(xiàn)方式,可以通過在Service中,使用clusterIP:None 來取消負(fù)載的ip,然后在`NEO4J_causal__clustering_initial__discovery__members` 中設(shè)置為 `neo4j-core-0.neo4j-core.neo4j.svc.cluster.local:5000`,然后通過k8s集群中的dns服務(wù),來解析到此Service中所有的ip。
    這樣配置非常方便,還不需要修改,沒用是因?yàn)镾ervice中,如果用了clusterIP:None 則沒發(fā)使用nodeport來暴露7687的tcp端口給k8s外部網(wǎng)絡(luò)使用,除非traefik可以實(shí)現(xiàn)tcp的4層負(fù)載,或者不是使用的traefik,二是nginx的Ingress,實(shí)現(xiàn)4層負(fù)載即可。
    K8S的發(fā)現(xiàn)方式呢,由于文檔沒有示例的配置參考,不管怎么樣設(shè)置,都還是無法正常啟動,所以就沒法用。

3. 數(shù)據(jù)持久化存儲,我這里用的nfs動態(tài)卷。

4. 其中一定要自定義初始化的用戶密碼,因?yàn)閚eo4j的每個節(jié)點(diǎn)的用戶驗(yàn)證系統(tǒng)是獨(dú)立的!
也就是說,你在leader節(jié)點(diǎn)上新增用戶或修改密碼,是不會同步到follower節(jié)點(diǎn)上的。
所以,為了不至于當(dāng)leader節(jié)點(diǎn)掛掉后,新的leader節(jié)點(diǎn)密碼不同導(dǎo)致出錯,部署時最好統(tǒng)一用戶密碼,當(dāng)然只讀節(jié)點(diǎn)也是。

執(zhí)行后,查看pod的日志,如下則為正常啟動

部署只讀節(jié)點(diǎn)READ-REPLICA

core核心節(jié)點(diǎn)部署完成后,則可以進(jìn)行只讀節(jié)點(diǎn)的部署,只讀節(jié)點(diǎn)比核心節(jié)點(diǎn)則簡單很多,創(chuàng)建neo4j-read-replica.yaml 文件

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: neorj-read-replica
  namespace: neo4j
  labels:
    app: neorj-read-replica
spec:
  replicas: 3
  selector:
    matchLabels:
      app: neorj-read-replica
  template:
    metadata:
      labels:
        app: neorj-read-replica
    spec:
      containers:
      - name: neorj-read-replica
        image: neo4j:3.5.5-enterprise
        imagePullPolicy: IfNotPresent
        env:
          - name: NEO4J_ACCEPT_LICENSE_AGREEMENT
            value: "yes"
          - name: NEO4J_dbms_connectors_default__advertised__address
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          - name: NEO4J_dbms_mode   # 指定模式為只讀節(jié)點(diǎn)模式
            value: "READ_REPLICA"
          - name: NEO4J_AUTH
            value: "neo4j/your-password"   # 統(tǒng)一設(shè)置用戶密碼
          - name: NEO4J_causal__clustering_discovery__type
            value: "LIST"
          - name: NEO4J_causal__clustering_initial__discovery__members
            value: "neo4j-core-0.neo4j-core.neo4j.svc.cluster.local:5000,neo4j-core-1.neo4j-core.neo4j.svc.cluster.local:5000"
            
---

apiVersion: v1
kind: Service
metadata:
  name: neorj-read-replica
  namespace: neo4j
spec:
  selector:
    app: neorj-read-replica
  ports:
  - protocol: TCP
    port: 7687
    targetPort: 7687

執(zhí)行此yaml文件,創(chuàng)建只讀節(jié)點(diǎn)

kubectl create -f neo4j-read-replica.yaml

【注】

部署3個只讀節(jié)點(diǎn),無狀態(tài)服務(wù),不需要進(jìn)行數(shù)據(jù)持久化,只需要將core節(jié)點(diǎn)的集群列表寫出就行了,會自動去找到核心節(jié)點(diǎn)的集群,然后從中復(fù)制數(shù)據(jù),提供訪問即可。

因?yàn)橹蛔x節(jié)點(diǎn)只能訪問數(shù)據(jù),所以沒必要提供k8s的外部訪問,所以直接在service中負(fù)載一下bolt的訪問端口就行了,以提供給k8s內(nèi)部應(yīng)用訪問即可。

查看日志如下為正常啟動

訪問WEB界面

部署完成后,設(shè)置域名,設(shè)置nginx,訪問web界面

默認(rèn)用戶密碼為: neo4j / neo4j

登錄修改密碼,然后查看狀態(tài),可以看到集群的狀態(tài)

neo4j 3個成員組成的集群

為每個成員創(chuàng)建一個PersistentVolume

volume.sh

for i in $(seq 0 2); do
  cat <<EOF | kubectl create -f -
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv${i}
  labels:
    type: local
    app: neo4j
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/tmp/${i}"
EOF
  cat <<EOF | kubectl create -f -
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: datadir-neo4j-${i}
  labels:
    app: neo4j
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
EOF
done

運(yùn)行此腳本,它將創(chuàng)建3個卷

$ kubectl get pv
NAME      CAPACITY   ACCESSMODES   STATUS    CLAIM                     REASON    AGE
pv0       1Gi        RWO           Bound     default/datadir-neo4j-0             7s
pv1       1Gi        RWO           Bound     default/datadir-neo4j-1             7s
pv2       1Gi        RWO           Bound     default/datadir-neo4j-2             7s
$ kubectl get pvc
NAME              STATUS    VOLUME    CAPACITY   ACCESSMODES   AGE
datadir-neo4j-0   Bound     pv0       1Gi        RWO           26s
datadir-neo4j-1   Bound     pv1       1Gi        RWO           26s
datadir-neo4j-2   Bound     pv2       1Gi        RWO           25s

我們需要創(chuàng)建一個PetSet模板

# Headless service to provide DNS lookup
apiVersion: v1
kind: Service
metadata:
  labels:
    app: neo4j
  name: neo4j
spec:
  clusterIP: None
  ports:
    - port: 7474
  selector:
    app: neo4j
----
# new API name
apiVersion: "apps/v1alpha1"
kind: PetSet
metadata:
  name: neo4j
spec:
  serviceName: neo4j
  replicas: 3
  template:
    metadata:
      annotations:
        pod.alpha.kubernetes.io/initialized: "true"
        pod.beta.kubernetes.io/init-containers: '[
            {
                "name": "install",
                "image": "gcr.io/google_containers/busybox:1.24",
                "command": ["/bin/sh", "-c", "echo \"
                unsupported.dbms.edition=enterprise\n
                dbms.mode=CORE\n
                dbms.connectors.default_advertised_address=$HOSTNAME.neo4j.default.svc.cluster.local\n
                dbms.connectors.default_listen_address=0.0.0.0\n
                dbms.connector.bolt.type=BOLT\n
                dbms.connector.bolt.enabled=true\n
                dbms.connector.bolt.listen_address=0.0.0.0:7687\n
                dbms.connector.http.type=HTTP\n
                dbms.connector.http.enabled=true\n
                dbms.connector.http.listen_address=0.0.0.0:7474\n
                causal_clustering.raft_messages_log_enable=true\n
                causal_clustering.initial_discovery_members=neo4j-0.neo4j.default.svc.cluster.local:5000,neo4j-1.neo4j.default.svc.cluster.local:5000,neo4j-2.neo4j.default.svc.cluster.local:5000\n
                causal_clustering.leader_election_timeout=2s\n
                  \" > /work-dir/neo4j.conf" ],
                "volumeMounts": [
                    {
                        "name": "confdir",
                        "mountPath": "/work-dir"
                    }
                ]
            }
        ]'
      labels:
        app: neo4j
    spec:
      containers:
      - name: neo4j
        image: "neo4j/neo4j-experimental:3.1.0-M13-beta3-enterprise"
        imagePullPolicy: Always
        ports:
        - containerPort: 5000
          name: discovery
        - containerPort: 6000
          name: tx
        - containerPort: 7000
          name: raft
        - containerPort: 7474
          name: browser
        - containerPort: 7687
          name: bolt
        securityContext:
          privileged: true
        volumeMounts:
        - name: datadir
          mountPath: /data
        - name: confdir
          mountPath: /conf
      volumes:
      - name: confdir
  volumeClaimTemplates:
  - metadata:
      name: datadir
      annotations:
        volume.alpha.kubernetes.io/storage-class: anything
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 2Gi

創(chuàng)建PetSet

$ kubectl create -f neo4j.yaml 
service "neo4j" created
petset "neo4j" created

檢查Pod是否已啟動并正在運(yùn)行

$ kubectl get pods
NAME      READY     STATUS    RESTARTS   AGE
neo4j-0   1/1       Running   0          2m
neo4j-1   1/1       Running   0          14s
neo4j-2   1/1       Running   0          10s

neo4j的日志文件

$ kubectl logs neo4j-0
Starting Neo4j.
2016-11-25 16:39:50.333+0000 INFO  Starting...
2016-11-25 16:39:51.723+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2016-11-25 16:39:51.733+0000 INFO  Initiating metrics...
2016-11-25 16:39:51.911+0000 INFO  Waiting for other members to join cluster before continuing...
2016-11-25 16:40:12.074+0000 INFO  Started.
2016-11-25 16:40:12.428+0000 INFO  Mounted REST API at: /db/manage
2016-11-25 16:40:13.350+0000 INFO  Remote interface available at http://neo4j-0.neo4j.default.svc.cluster.local:7474/
$ kubectl logs neo4j-1
Starting Neo4j.
2016-11-25 16:39:53.846+0000 INFO  Starting...
2016-11-25 16:39:56.212+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2016-11-25 16:39:56.225+0000 INFO  Initiating metrics...
2016-11-25 16:39:56.341+0000 INFO  Waiting for other members to join cluster before continuing...
2016-11-25 16:40:16.623+0000 INFO  Started.
2016-11-25 16:40:16.951+0000 INFO  Mounted REST API at: /db/manage
2016-11-25 16:40:17.607+0000 INFO  Remote interface available at http://neo4j-1.neo4j.default.svc.cluster.local:7474/
$ kubectl logs neo4j-2
Starting Neo4j.
2016-11-25 16:39:57.828+0000 INFO  Starting...
2016-11-25 16:39:59.166+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2016-11-25 16:39:59.176+0000 INFO  Initiating metrics...
2016-11-25 16:39:59.329+0000 INFO  Waiting for other members to join cluster before continuing...
2016-11-25 16:40:19.216+0000 INFO  Started.
2016-11-25 16:40:19.675+0000 INFO  Mounted REST API at: /db/manage
2016-11-25 16:40:21.029+0000 INFO  Remote interface available at http://neo4j-2.neo4j.default.svc.cluster.local:7474/

為每個服務(wù)器設(shè)置了端口轉(zhuǎn)發(fā)

$ kubectl port-forward neo4j-0 27474:7474 27687:7687

運(yùn)行以下過程來獲得集群的概述

CALL dbms.cluster.overview()
╒════════════════════════════════════╤══════════════════════════════════════════════════════╤════════╕
│id                                  │addresses                                             │role    │
╞════════════════════════════════════╪══════════════════════════════════════════════════════╪════════╡
│81d8e5e2-02db-4414-85de-a7025b346e84│[bolt://neo4j-0.neo4j.default.svc.cluster.local:27687,│LEADER  │
│                                    │ http://neo4j-0.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│347b7517-7ca0-4b92-b9f0-9249d46b2ad3│[bolt://neo4j-1.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-1.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│a5ec1335-91ce-4358-910b-8af9086c2969│[bolt://neo4j-2.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-2.neo4j.default.svc.cluster.local:27474]│        │
└────────────────────────────────────┴──────────────────────────────────────────────────────┴────────┘

如果 希望集群中有5臺服務(wù)器而不是3臺,運(yùn)行以下命令來增加副本的大小

$ kubectl patch petset neo4j -p '{"spec":{"replicas":5}}'
"neo4j" patched

再次運(yùn)行該過程

CALL dbms.cluster.overview()
╒════════════════════════════════════╤══════════════════════════════════════════════════════╤════════╕
│id                                  │addresses                                             │role    │
╞════════════════════════════════════╪══════════════════════════════════════════════════════╪════════╡
│81d8e5e2-02db-4414-85de-a7025b346e84│[bolt://neo4j-0.neo4j.default.svc.cluster.local:27687,│LEADER  │
│                                    │ http://neo4j-0.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│347b7517-7ca0-4b92-b9f0-9249d46b2ad3│[bolt://neo4j-1.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-1.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│a5ec1335-91ce-4358-910b-8af9086c2969│[bolt://neo4j-2.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-2.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│28613d06-d4c5-461c-b277-ddb3f05e5647│[bolt://neo4j-3.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-3.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│2eaa0058-a4f3-4f07-9f22-d310562ad1ec│[bolt://neo4j-4.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-4.neo4j.default.svc.cluster.local:27474]│        │
└────────────────────────────────────┴──────────────────────────────────────────────────────┴────────┘

再次回到3很簡單

$ kubectl patch petset neo4j -p '{"spec":{"replicas":3}}'
"neo4j" patched
CALL dbms.cluster.overview()
╒════════════════════════════════════╤══════════════════════════════════════════════════════╤════════╕
│id                                  │addresses                                             │role    │
╞════════════════════════════════════╪══════════════════════════════════════════════════════╪════════╡
│81d8e5e2-02db-4414-85de-a7025b346e84│[bolt://neo4j-0.neo4j.default.svc.cluster.local:27687,│LEADER  │
│                                    │ http://neo4j-0.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│347b7517-7ca0-4b92-b9f0-9249d46b2ad3│[bolt://neo4j-1.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-1.neo4j.default.svc.cluster.local:27474]│        │
├────────────────────────────────────┼──────────────────────────────────────────────────────┼────────┤
│a5ec1335-91ce-4358-910b-8af9086c2969│[bolt://neo4j-2.neo4j.default.svc.cluster.local:27687,│FOLLOWER│
│                                    │ http://neo4j-2.neo4j.default.svc.cluster.local:27474]│        │
└────────────────────────────────────┴──────────────────────────────────────────────────────┴────────┘

托管Kubernetes上部署Neo4J單核

cd /tmp/  git clone https: //github.com/sdaschner/neo4j-helm --branch single-instance  cd neo4j-helm/  helm template graphdb \ 
   --set acceptLicenseAgreement=yes \ 
   --set neo4jPassword=mySecretPassword . \ 
   > /tmp/neo4j.yaml  kubectl apply -f /tmp/neo4j.yaml 

總結(jié)

到此這篇關(guān)于Docker安裝部署neo4j的文章就介紹到這了,更多相關(guān)Docker安裝部署neo4j內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Docker常用命令總結(jié)大全(推薦!)

    Docker常用命令總結(jié)大全(推薦!)

    Dokcer里面有很多命令,全部的可以參考官方Reference文檔,命令太多我們只需要掌握部分命令即可,這篇文章主要給大家介紹了關(guān)于Docker常用命令總結(jié)大全的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    詳解Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐

    這篇文章主要介紹了Docker+Jenkins+Gitlab+Django應(yīng)用部署實(shí)踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用?Docker安裝?Zabbix并配置自定義監(jiān)控項(xiàng)的過程詳解

    使用?Docker安裝?Zabbix并配置自定義監(jiān)控項(xiàng)的過程詳解

    Zabbix?可以用來監(jiān)控各種網(wǎng)絡(luò)參數(shù),來保證服務(wù)器和系統(tǒng)的安全運(yùn)行,是一個基于?Web?界面提供的分布式系統(tǒng)監(jiān)控以及網(wǎng)絡(luò)監(jiān)控功能的企業(yè)級開源解決方案,對Docker?安裝?Zabbix配置自定義監(jiān)控項(xiàng)相關(guān)知識感興趣的朋友一起看看吧
    2022-04-04
  • Docker Compose部署及基礎(chǔ)使用詳解

    Docker Compose部署及基礎(chǔ)使用詳解

    這篇文章主要介紹了Docker Compose部署及基礎(chǔ)使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Docker的理解和基本命令詳解

    Docker的理解和基本命令詳解

    這篇文章主要介紹了Docker的理解和基本命令詳解,需要的朋友可以參考下
    2017-05-05
  • Docker如何使用OpenvSwitch網(wǎng)橋

    Docker如何使用OpenvSwitch網(wǎng)橋

    本篇文章主要介紹了Docker如何使用OpenvSwitch網(wǎng)橋,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • centos6使用docker部署zookeeper操作示例

    centos6使用docker部署zookeeper操作示例

    這篇文章主要介紹了centos6使用docker部署zookeeper操作,結(jié)合實(shí)例形式分析了centos6平臺使用docker部署zookeeper相關(guān)命令與使用技巧,需要的朋友可以參考下
    2020-02-02
  • 詳解基于Docker的服務(wù)部署流程

    詳解基于Docker的服務(wù)部署流程

    這篇文章主要介紹了詳解基于Docker的服務(wù)部署流程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Docker?制作tomcat鏡像并部署項(xiàng)目的步驟

    Docker?制作tomcat鏡像并部署項(xiàng)目的步驟

    這篇文章主要介紹了Docker?制作tomcat鏡像并部署項(xiàng)目?,講解如何制作自己的tomcat鏡像,并使用tomcat部署項(xiàng)目,需要的朋友可以參考下
    2022-10-10
  • 基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟

    基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟

    這篇文章主要介紹了基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論