我想在Kubernetes节点中运行Eventstore。我从minikube start
开始该节点,然后应用了这个yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: eventstore-deployment
spec:
selector:
matchLabels:
app: eventstore
replicas: 1
template:
metadata:
labels:
app: eventstore
spec:
containers:
- name: eventstore
image: eventstore/eventstore
ports:
- containerPort: 1113
protocol: TCP
- containerPort: 2113
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: eventstore
spec:
selector:
app: eventstore
ports:
- protocol: TCP
port: 1113
targetPort: 1113
---
apiVersion: v1
kind: Service
metadata:
name: eventstore-dashboard
spec:
selector:
app: eventstore
ports:
- protocol: TCP
port: 2113
targetPort: 2113
nodePort: 30113
type: NodePort
部署,副本集和Pod启动,但是什么也没发生:Eventstore不打印到日志,我无法打开其仪表板。另外,其他服务也无法连接到 eventstore:1113 。没有错误,豆荚也不会崩溃。 我在日志中看到的唯一是“所选容器尚未记录任何消息”。
我尝试了一个干净的香草minukube节点,该节点具有不同的vm驱动程序,并且还尝试了一个配置了Ambassador + Linkerd的节点。结果是一样的。
但是当我通过 docker-compose
在这个yaml文件中在Docker中运行Eventstore时eventstore:
image: eventstore/eventstore
ports:
- '1113:1113'
- '2113:2113'
一切正常:Eventstore输出到日志,其他服务可以连接到它,我可以在2113端口上打开其仪表板。
更新:Eventstore在部署大约30-40分钟后开始工作。我尝试了几次,不得不等待。部署后,其他Pod几乎立即开始工作(30秒-1分钟)。
答案 0 :(得分:1)
正如@ligowsky在评论部分中确认的那样,问题是由于VM性能引起的。将其发布为社区Wiki以获得更好的可见性。
Minikube
默认与2 CPUs
和2048 Memory
一起运行。可以在here中找到更多详细信息。
如果您的VM具有更多资源,则可以更改此设置。
-在Minikube启动期间
$ sudo minikube start --cpus 2 --memory 8192 --vm-driver=<driverType>
-在运行Minikube时,需要重新启动minikube
$ minikube config set memory 4096
⚠️ These changes will take effect upon a minikube delete and then a minikube start
更多命令可在Minikube docs中找到。
在我的情况下,当Minikube
的资源为4个CPU和8192个内存时,eventstore
没有任何问题。
OP的解决方案
OP使用Kind来运行eventstore
部署。
Kind是使用Docker运行本地Kubernetes集群的工具 容器“节点”。一种主要用于测试Kubernetes 1.11 +
Kind
文档可以在here中找到。