ГоловнаВсі публікаціїКатегоріїПро проєкт

Фіксимо minikube на Mac з М1 (відмовляємось від qemu, запускаємо на docker)

На Mac з M1 не все так просто з minikube. Після його встановлення впіймав ще одну помилку:
😄  minikube v1.35.0 on Darwin 14.1.2 (arm64)
✨  Using the qemu2 driver based on user configuration

🤷  Exiting due to PROVIDER_QEMU2_NOT_FOUND: The 'qemu2' provider was not found: exec: "qemu-system-aarch64": executable file not found in $PATH
💡  Suggestion: Install qemu-system
📘  Documentation: https://minikube.sigs.k8s.io/docs/reference/drivers/qemu/
Тут треба трохи заморочитись.
Встановлюємо qemu (так так, без 2)
brew install qemu
Потім робимо отакий фінт щоб пофіксити проблеми qemu (edk2-aarch64-code.fd). Завантажимо edk2-aarch64-code.fd вручну
curl -L -o edk2-aarch64-code.fd https://releases.linaro.org/components/kernel/uefi/edk2/latest/release/qemu64/edk2-aarch64-code.fd
Потім повторюємо структуру тек і файлу:
sudo mkdir -p /opt/homebrew/opt/qemu/share/qemu
sudo mv edk2-aarch64-code.fd /opt/homebrew/opt/qemu/share/qemu/
Після цього має працювати:
minikube start --driver=qemu2
Але після запуску, виявиться що qemu впаде через акселератор, який на M1 не працює. Тож треба шукати варіанти далі.
😄  minikube v1.35.0 on Darwin 14.1.2 (arm64)
✨  Using the qemu2 driver based on user configuration
🌐  Automatically selected the builtin network
❗  You are using the QEMU driver without a dedicated network, which doesn't support minikube service & minikube tunnel commands.
To try the dedicated network see: https://minikube.sigs.k8s.io/docs/drivers/qemu/#networking
💿  Downloading VM boot image ...
    > minikube-v1.35.0-arm64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.35.0-arm64.iso:  393.15 MiB / 393.15 MiB  100.00% 6.28 MiB p/
👍  Starting "minikube" primary control-plane node in "minikube" cluster
💾  Downloading Kubernetes v1.32.0 preload ...
    > preloaded-images-k8s-v18-v1...:  314.92 MiB / 314.92 MiB  100.00% 6.30 Mi
🔥  Creating qemu2 VM (CPUs=4, Memory=4096MB, Disk=15000MB) ...\ OUTPUT: 
ERROR: qemu-system-aarch64: -accel hvf: invalid accelerator hvf


🔥  Deleting "minikube" in qemu2 ...
🤦  StartHost failed, but will try again: creating host: create: creating: qemu-system-aarch64: -accel hvf: invalid accelerator hvf: exit status 1
🔥  Creating qemu2 VM (CPUs=4, Memory=4096MB, Disk=15000MB) ...\ OUTPUT: 
ERROR: qemu-system-aarch64: -accel hvf: invalid accelerator hvf


😿  Failed to start qemu2 VM. Running "minikube delete" may fix it: creating host: create: creating: qemu-system-aarch64: -accel hvf: invalid accelerator hvf: exit status 1
Забиваємо на qemu і запускаємо minikube використовуючи драйвер docker.
Встановіть Docker (завантажте .dmg під arm64) з оф сайту. Якщо спробувати запустити одразу з драйвером докер - отримаєте помилку. Треба видалити існуючий контейнер minikube:
minikube start --driver=docker

😄  minikube v1.35.0 on Darwin 14.1.2 (arm64)

💢  Exiting due to GUEST_DRIVER_MISMATCH: The existing "minikube" cluster was created using the "qemu2" driver, which is incompatible with requested "docker" driver.
💡  Suggestion: Delete the existing 'minikube' cluster using: 'minikube delete', or start the existing 'minikube' cluster using: 'minikube start --driver=qemu2'
Видаляємо контейнер:
minikube delete

🔥  Deleting "minikube" in qemu2 ...
💀  Removed all traces of the "minikube" cluster.
А далі все просто:
minikube start --driver=docker

😄  minikube v1.35.0 on Darwin 14.1.2 (arm64)
✨  Using the docker driver based on user configuration
📌  Using Docker Desktop driver with root privileges
👍  Starting "minikube" primary control-plane node in "minikube" cluster
🚜  Pulling base image v0.0.46 ...
    > gcr.io/k8s-minikube/kicbase...:  452.84 MiB / 452.84 MiB  100.00% 6.76 Mi
🔥  Creating docker container (CPUs=4, Memory=4096MB) ...
🐳  Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔗  Configuring bridge CNI (Container Networking Interface) ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Створений контейнер буде видно у застосунку Docker.
minikube + docker
minikube + docker
Embed програмування: що це таке і з чого почати
24.03.2025 16:48

Embed програмування: що це таке і з чого почати

meme code
meme code@memecode
Pessimistic Lock у Rails: що це таке і коли застосовувати. Які є альтернативи?
31.03.2025 17:45

Pessimistic Lock у Rails: що це таке і коли застосовувати. Які є альтернативи?

meme code
meme code@memecode
Чому PostgreSQL пропускає ID при збережені нових записів? (Heroku)
31.03.2025 19:13

Чому PostgreSQL пропускає ID при збережені нових записів? (Heroku)

meme code
meme code@memecode
[Codecov] В чому різниця між patch та project coverage?
09.04.2025 16:03

[Codecov] В чому різниця між patch та project coverage?

meme code
meme code@memecode
Як курси Scratch допомагають дітям розвивати soft skills?
11.04.2025 18:24

Як курси Scratch допомагають дітям розвивати soft skills?

meme code
meme code@memecode
24.04.2025 20:17

Фіксимо minikube "You are trying to run the amd64 binary on an M1 system."

meme code
meme code@memecode
Де знайти старішу версію Google Chrome та скачати її? На прикладі старого Mac
25.04.2025 23:02

Де знайти старішу версію Google Chrome та скачати її? На прикладі старого Mac

meme code
meme code@memecode