我正在尝试将
mongo db
部署与服务一起部署,如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-deployment
labels:
app: mongo
spec:
replicas: 1
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
spec:
containers:
- name: mongo
image: mongo:5.0
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-user
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-password
---
apiVersion: v1
kind: Service
metadata:
name: mongo-service
spec:
selector:
app: mongo
ports:
- protocol: TCP
port: 27017
targetPort: 27017
尽管一切似乎都已正确配置和部署,但它会进入
CrashLoopBackOff
状态而不是 Running
,使用 kubectl logs <deployment-name>
我收到以下错误:
MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!
有人知道该怎么办吗?
为了解决这个问题,我必须运行旧的
mongo-db
docker 镜像版本(4.4.6),如下所示:
image: mongo:4.4.6
参考:
可以在没有
AVX
的情况下工作的最新版本是
image: mongo:4.4.18
但是如果您在 VPS 上使用它,值得一试联系他们的支持人员,我的说他们更改了 CPU 类型并解决了问题。
如果您使用 Windows+VirtualBox 这将解决该问题:
bcdedit /set hypervisorlaunchtype off
DISM /Online /Disable-Feature:Microsoft-Hyper-V
可能需要重新启动主机。
Mongo DB 部署在 kubernetes 中不起作用,因为处理器不支持 AVX
使用 mongo:4.4.7 而不是 mongo:latest 来解决上述 AVX 支持问题。
如果您的 CPU 不支持 AVX,那么您确实运气不好,但是过去十年中销售的大多数 CPU(以及几乎所有消费类 CPU)都支持 AVX。
如果您的 mongodb 部署在 VM 中失败,尤其是托管在 proxmox 主机上的 VM,则 proxmox 默认情况下不允许 VM 知道主机 CPU 支持 AVX。
在虚拟机的硬件设置中,将 CPU 类型设置为“主机”,以镜像虚拟机管理程序的 CPU 功能,然后重新启动虚拟机。