Mongo DB 部署在 kubernetes 中不起作用,因为处理器不支持 AVX

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

我正在尝试将

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!

有人知道该怎么办吗?

mongodb docker kubernetes kubectl
5个回答
36
投票

为了解决这个问题,我必须运行旧的

mongo-db
docker 镜像版本(4.4.6),如下所示:

image: mongo:4.4.6

参考:

Mongo 5.0.0 崩溃,但 4.4.6 可以运行#485


7
投票

可以在没有

AVX
的情况下工作的最新版本是

image: mongo:4.4.18

但是如果您在 VPS 上使用它,值得一试联系他们的支持人员,我的说他们更改了 CPU 类型并解决了问题。


3
投票

如果您使用 Windows+VirtualBox 这将解决该问题:

bcdedit /set hypervisorlaunchtype off
DISM /Online /Disable-Feature:Microsoft-Hyper-V

可能需要重新启动主机。


1
投票

Mongo DB 部署在 kubernetes 中不起作用,因为处理器不支持 AVX

使用 mongo:4.4.7 而不是 mongo:latest 来解决上述 AVX 支持问题。


0
投票

如果您的 CPU 不支持 AVX,那么您确实运气不好,但是过去十年中销售的大多数 CPU(以及几乎所有消费类 CPU)都支持 AVX。

如果您的 mongodb 部署在 VM 中失败,尤其是托管在 proxmox 主机上的 VM,则 proxmox 默认情况下不允许 VM 知道主机 CPU 支持 AVX。

在虚拟机的硬件设置中,将 CPU 类型设置为“主机”,以镜像虚拟机管理程序的 CPU 功能,然后重新启动虚拟机。

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