我尝试在我的 kubernetes pod 上安装 Eventstore 时出错 |访问路径“/var/lib/eventstore/writer.chk”被拒绝

问题描述 投票:0回答:1

我正在尝试在我的 kubernetes pod 上安装 eventstore

但我收到错误。它将用于生产。我可以做什么来解决这个问题?

** 短错误:**

[00001,01,06:27:30.893] Quorum size set to 2
[00001,01,06:27:30.902] Cannot find plugins path: plugins
[00001,01,06:27:30.934] Unhandled exception while starting application:
Access to the path "/var/lib/eventstore/writer.chk" is denied.
[00001,01,06:27:30.943] Access to the path "/var/lib/eventstore/writer.chk" is denied.
Access to the path "/var/lib/eventstore/writer.chk" is denied.

** 长错误:**

kubectl 记录 eventstore-1 -n eventstore

root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# kubectl logs eventstore-1 -n eventstore
[00001,01,06:47:49.855]
ES VERSION:               4.1.1.0 (HEAD/cd0eafec71baffbcc0b9a4bb7c58e996cf290d34, Wed, 16 May 2018 11:08:07 +0400)
[00001,01,06:47:49.877] OS:                       Linux (Unix 4.19.288.2)
[00001,01,06:47:49.881] RUNTIME:                  4.6.2 (Stable 4.6.2.16/ac9e222) (64-bit)
[00001,01,06:47:49.881] GC:                       2 GENERATIONS
[00001,01,06:47:49.881] LOGS:                     /var/log/eventstore
[00001,01,06:47:49.889] MODIFIED OPTIONS:

    INT IP:                   ----.40 (Environment Variable)
    EXT IP:                   ----.40 (Environment Variable)
    INT HTTP PORT:            2114 (Environment Variable)
    EXT HTTP PORT:            2113 (Environment Variable)
    INT TCP PORT:             1111 (Environment Variable)
    EXT TCP PORT:             1112 (Environment Variable)
    CLUSTER SIZE:             3 (Environment Variable)
    CLUSTER DNS:              eventstore.default.svc.cluster.local (Environment Variable)
    CLUSTER GOSSIP PORT:      2114 (Environment Variable)
    INT HTTP PREFIXES:        http://*:2114/ (Environment Variable)
    EXT HTTP PREFIXES:        http://*:2113/ (Environment Variable)
    GOSSIP ALLOWED DIFFERENCE MS: 600000 (Environment Variable)
    ADD INTERFACE PREFIXES:   false (Config File)
    RUN PROJECTIONS:          All (Config File)

DEFAULT OPTIONS:

    CONFIG:                   /etc/eventstore/eventstore.conf (<DEFAULT>)
    HELP:                     False (<DEFAULT>)
    VERSION:                  False (<DEFAULT>)
    LOG:                      /var/log/eventstore (<DEFAULT>)
    DEFINES:                  <empty> (<DEFAULT>)
    WHAT IF:                  False (<DEFAULT>)
    START STANDARD PROJECTIONS: False (<DEFAULT>)
    DISABLE HTTP CACHING:     False (<DEFAULT>)
    MONO MIN THREADPOOL SIZE: 10 (<DEFAULT>)
    INT SECURE TCP PORT:      0 (<DEFAULT>)
    EXT SECURE TCP PORT ADVERTISE AS: 0 (<DEFAULT>)
    EXT SECURE TCP PORT:      0 (<DEFAULT>)
    EXT IP ADVERTISE AS:      <empty> (<DEFAULT>)
    EXT TCP PORT ADVERTISE AS: 0 (<DEFAULT>)
    EXT HTTP PORT ADVERTISE AS: 0 (<DEFAULT>)
    INT IP ADVERTISE AS:      <empty> (<DEFAULT>)
    INT SECURE TCP PORT ADVERTISE AS: 0 (<DEFAULT>)
    INT TCP PORT ADVERTISE AS: 0 (<DEFAULT>)
    INT HTTP PORT ADVERTISE AS: 0 (<DEFAULT>)
    INT TCP HEARTBEAT TIMEOUT: 700 (<DEFAULT>)
    EXT TCP HEARTBEAT TIMEOUT: 1000 (<DEFAULT>)
    INT TCP HEARTBEAT INTERVAL: 700 (<DEFAULT>)
    EXT TCP HEARTBEAT INTERVAL: 2000 (<DEFAULT>)
    GOSSIP ON SINGLE NODE:    False (<DEFAULT>)
    CONNECTION PENDING SEND BYTES THRESHOLD: 10485760 (<DEFAULT>)
    FORCE:                    False (<DEFAULT>)
    NODE PRIORITY:            0 (<DEFAULT>)
    MIN FLUSH DELAY MS:       2 (<DEFAULT>)
    COMMIT COUNT:             -1 (<DEFAULT>)
    PREPARE COUNT:            -1 (<DEFAULT>)
    ADMIN ON EXT:             True (<DEFAULT>)
    STATS ON EXT:             True (<DEFAULT>)
    GOSSIP ON EXT:            True (<DEFAULT>)
    DISABLE SCAVENGE MERGING: False (<DEFAULT>)
    SCAVENGE HISTORY MAX AGE: 30 (<DEFAULT>)
    DISCOVER VIA DNS:         True (<DEFAULT>)
    GOSSIP SEED:              <empty> (<DEFAULT>)
    STATS PERIOD SEC:         30 (<DEFAULT>)
    CACHED CHUNKS:            -1 (<DEFAULT>)
    READER THREADS COUNT:     4 (<DEFAULT>)
    CHUNKS CACHE SIZE:        536871424 (<DEFAULT>)
    MAX MEM TABLE SIZE:       1000000 (<DEFAULT>)
    HASH COLLISION READ LIMIT: 100 (<DEFAULT>)
    DB:                       /var/lib/eventstore (<DEFAULT>)
    INDEX:                    <empty> (<DEFAULT>)
    MEM DB:                   False (<DEFAULT>)
    SKIP DB VERIFY:           False (<DEFAULT>)
    WRITE THROUGH:            False (<DEFAULT>)
    UNBUFFERED:               False (<DEFAULT>)
    CHUNK INITIAL READER COUNT: 5 (<DEFAULT>)
    PROJECTION THREADS:       3 (<DEFAULT>)
    WORKER THREADS:           5 (<DEFAULT>)
    PROJECTIONS QUERY EXPIRY: 0 (<DEFAULT>)
    ENABLE TRUSTED AUTH:      False (<DEFAULT>)
    CERTIFICATE STORE LOCATION: <empty> (<DEFAULT>)
    CERTIFICATE STORE NAME:   <empty> (<DEFAULT>)
    CERTIFICATE SUBJECT NAME: <empty> (<DEFAULT>)
    CERTIFICATE THUMBPRINT:   <empty> (<DEFAULT>)
    CERTIFICATE FILE:         <empty> (<DEFAULT>)
    CERTIFICATE PASSWORD:     <empty> (<DEFAULT>)
    USE INTERNAL SSL:         False (<DEFAULT>)
    DISABLE INSECURE TCP:     False (<DEFAULT>)
    SSL TARGET HOST:          n/a (<DEFAULT>)
    SSL VALIDATE SERVER:      True (<DEFAULT>)
    AUTHENTICATION TYPE:      internal (<DEFAULT>)
    AUTHENTICATION CONFIG:    <empty> (<DEFAULT>)
    PREPARE TIMEOUT MS:       2000 (<DEFAULT>)
    COMMIT TIMEOUT MS:        2000 (<DEFAULT>)
    UNSAFE DISABLE FLUSH TO DISK: False (<DEFAULT>)
    BETTER ORDERING:          False (<DEFAULT>)
    UNSAFE IGNORE HARD DELETE: False (<DEFAULT>)
    SKIP INDEX VERIFY:        False (<DEFAULT>)
    INDEX CACHE DEPTH:        16 (<DEFAULT>)
    OPTIMIZE INDEX MERGE:     False (<DEFAULT>)
    GOSSIP INTERVAL MS:       1000 (<DEFAULT>)
    GOSSIP TIMEOUT MS:        500 (<DEFAULT>)
    ENABLE HISTOGRAMS:        False (<DEFAULT>)
    LOG HTTP REQUESTS:        False (<DEFAULT>)
    ALWAYS KEEP SCAVENGED:    False (<DEFAULT>)
    SKIP INDEX SCAN ON READS: False (<DEFAULT>)

[00001,01,06:47:49.895] Quorum size set to 2
[00001,01,06:47:49.903] Cannot find plugins path: plugins
[00001,01,06:47:49.933] Unhandled exception while starting application:
Access to the path "/var/lib/eventstore/writer.chk" is denied.
[00001,01,06:47:49.941] Access to the path "/var/lib/eventstore/writer.chk" is denied.
Access to the path "/var/lib/eventstore/writer.chk" is denied.

** 有状态设置 YAML:**

cat eventstore-statefulset.yaml

root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# cat eventstore-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: eventstore
  namespace: eventstore
spec:
  selector:
    matchLabels:
      app: eventstore
  replicas: 3
  serviceName: eventstore
  template:
    metadata:
      labels:
        app: eventstore
    spec:
      containers:
        - name: eventstore
          securityContext:
            runAsUser: 1000
            runAsGroup: 1000
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL
            runAsNonRoot: true
            runAsUser: 1000
            seccompProfile:
              type: RuntimeDefault
          image: "eventstore/eventstore:release-4.1.1-hotfix1"
          volumeMounts:
            - mountPath: "/usr/data/eventstore"
              name: eventstore-pv-storage
          env:
            - name: EVENTSTORE_INT_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: EVENTSTORE_EXT_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: EVENTSTORE_INT_TCP_PORT
              value: "1111"
            - name: EVENTSTORE_EXT_TCP_PORT
              value: "1112"
            - name: EVENTSTORE_INT_HTTP_PORT
              value: "2114"
            - name: EVENTSTORE_EXT_HTTP_PORT
              value: "2113"
            - name: EVENTSTORE_CLUSTER_SIZE
              value: "3"
            - name: EVENTSTORE_CLUSTER_DNS
              value: "eventstore.default.svc.cluster.local"
            - name: EVENTSTORE_CLUSTER_GOSSIP_PORT
              value: "2114"
            - name: EVENTSTORE_GOSSIP_ALLOWED_DIFFERENCE_MS
              value: "600000"
            - name: EVENTSTORE_INT_HTTP_PREFIXES
              value: "http://*:2114/"
            - name: EVENTSTORE_EXT_HTTP_PREFIXES
              value: "http://*:2113/"
          ports:
            - containerPort: 2113
            - containerPort: 2114
            - containerPort: 1111
            - containerPort: 1112
  volumeClaimTemplates:
    - metadata:
        name: eventstore-pv-storage
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi

** 服务 YAML:**

cat eventstore-service.yaml


root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# cat eventstore-service.yaml
kind: Service
apiVersion: v1
metadata:
  name: "eventstore"
  namespace: eventstore
spec:
  selector:
    app: "eventstore"
  ports:
    - protocol: "TCP"
      port: 2113
      targetPort: 2113
  clusterIP: None

** PV YAML:**

cat 卷部署-mnt.data.yaml

root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# cat volume-deployment-mnt.data.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
  name: eventstore-pv-volume
  namespace: eventstore
  labels:
    type: local
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

** PVC YAML:**

cat 卷声明.yaml

root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# cat volume-claim.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: eventstore-pv-claim
  namespace: eventstore
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2.5Gi

kubectl 获取所有 -n eventstore

root@ankasoft-mg:/home/yagmur/EventStore-Kubernetes# kubectl get all -n eventstore
NAME               READY   STATUS             RESTARTS        AGE
pod/eventstore-0   0/1     CrashLoopBackOff   9 (3m36s ago)   25m
pod/eventstore-1   0/1     CrashLoopBackOff   9 (3m59s ago)   25m
pod/eventstore-2   0/1     CrashLoopBackOff   9 (2m7s ago)    23m

NAME                          TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGE
service/eventstore            ClusterIP      None           <none>         2113/TCP         4d18h
service/frontend-eventstore   LoadBalancer   CLUSTER-IP.220   EXTERNAL-IP.65   2113:31881/TCP   4d18h

NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/frontend-eventstore   0/1     0            0           4d18h

NAME                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/frontend-eventstore-64c88cfb49   1         0         0       4d18h

NAME                          READY   AGE
statefulset.apps/eventstore   0/3     25m
kubernetes events kubernetes-statefulset eventstoredb event-store
1个回答
0
投票

EventStore 设置为使用

/var/lib/eventstore
作为数据目录,它会在启动时向您显示。但是,您的卷已安装到
/usr/data/eventstore
。您会收到一条不言自明的消息,表明 EventStore 无法获得对
/var/lib/eventstore
的写入权限。

您需要使用

EVENTSTORE_DB
env var 设置数据目录的正确路径。

值得一提的是,v4 非常老了,很久以前就不再支持了。我们不建议使用 v4 进行生产(以及 v5、v20.X 和 v21.X)。

© www.soinside.com 2019 - 2024. All rights reserved.