【发布时间】: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