【问题标题】:ArangoDB won't run on MicroK8sArangoDB 不会在 MicroK8s 上运行
【发布时间】:2019-12-10 20:41:24
【问题描述】:

将 ArangoDB 部署到 MicroK8s 集群会导致:

$ kubectl logs -f dbgraph-64c6fd9b84-chqkm
automatically choosing storage engine
Initializing database...Hang on...
ArangoDB didn't start correctly during init
cat: can't open '/tmp/init-log': No such file or directory

部署声明在哪里:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  name: dbgraph
spec:
  replicas: 1
  selector:
    matchLabels:
      name: dbgraph
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      name: dbgraph
      labels:
        name: dbgraph
    spec:
      containers:
      - env:
        - name: ARANGO_NO_AUTH
          value: "1"
        image: arangodb:3.5
        name: dbgraph
        ports:
        - containerPort: 8529
        resources:
          limits:
            memory: "2Gi"
            cpu: 0.5
        volumeMounts:
        - mountPath: /var/lib/arangodb3
          name: dbdata-arangodb
      restartPolicy: Always
      volumes:
      - name: dbdata-arangodb
        persistentVolumeClaim:
          claimName: dbdata-arangodb-pvc
status: {}

PersistentVolumeClaim 是:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  creationTimestamp: null
  name: dbdata-arangodb-pvc
spec:
  storageClassName: ""
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
status: {}

PersistentVolume 声明是:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: dbdata-arangodb-pv
  labels:
    type: local
spec:
  storageClassName: ""
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/disk5/k8s-peristent-volumes/test/arangodb"

具有类似的 Deployment-with-volume-declaration -> PVC -> PV 关系适用于其他部署,例如 Minio。我也很幸运在 GKE 上为 ArangoDB 设置了类似的设置。

这可能是 ArangoDB 在 Kubernetes 版本中遇到的问题吗?

$ microk8s.kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:13:49Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}

我确实尝试了ArangoDB Kubernetes Operator,但没有运气(但在 GKE 上很好)——在该项目的readiness state table 中,可以看出最多支持 Kubernetes 版本 1.14——所以这可能符合预期。

如何让 ArangoDB 在 MicroK8s 集群上运行?

【问题讨论】:

  • 您能否检查一下init-log 文件是否真的存在?还要检查特权?没有关于 ArangoDB 和 MicroK8s 之间任何冲突的信息,因此似乎由于某些权限配置不合适而无法创建/访问该文件。
  • kubectl exec -it dbgraph-64c6fd9b84-hftdx -- /bin/sh , ls /tmp/init-log 返回ls: /tmp/init-log: No such file or directory/tmp/ 中唯一的文件是 arangod.conf
  • 另一个问题:在使用你提到的 Operator 时,你是否也用 Helm 尝试过?
  • 没有用 Helm 试过。刚刚发现官方的 ArangoDB 二进制文件需要一个支持 SSE4.2 的 CPU,但我正在尝试的机器只支持 SSE3(是的,它是一个古老的)——所以这可能是导致问题的原因。当我有机会在支持 SSE4.2 的机器上设置 MicroK8s 时会报告。相关链接:github.com/arangodb/arangodb/issues/7705...github.com/arangodb/arangodb/issues/8135
  • 感谢您的信息,请这样做。我将根据我们的调查结果创建一个答案并将其发布,以便社区的其他人可以使用它。

标签: kubernetes arangodb microk8s


【解决方案1】:
  1. ArangoDB 二进制文件的先决条件需要支持 SSE4.2 的 CPU。

  2. 您可以使用Helm 在 MicroK8s 集群上安装 ArangoDB。

microk8s.enable helm - 在 Microk8s 中使用 Helm 允许您管理、更新、共享和回滚 Kubernetes 应用程序。

Here 你可以找到一本手册,展示如何将 ArangoDB Kubernetes Operator 与 Helm 一起使用。

另外,对于一般指南,我推荐this thread

我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 2021-08-04
    • 2011-10-20
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多