我们通常在本地开发环境安装 Minikube, 用来学习、体验 K8s 的基本功能,也用来模拟测试应用部署在 k8s 的情况。本文介绍如何在 Apple M1 电脑中安装 Minikube。
安装 Docker 在 Docker官方网站 下载 Docker Desktop, 选择 Mac with Apple Chip 的版本。
下载完成后进行安装,按提示默认安装即可。
下载 minikube 下载 minikube 的 arm64 的版本,下载地址
1 https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64
下载完成后的文件就是一个可执行文件,不需要安装。只需要赋予执行权限并放置到 PATH 路径下即可。 执行
1 chmod +x minikube-darwin-arm64
然后
1 sudo mv minikube-darwin-arm64 /usr/local /bin/minikube
启动 minikube 执行
1 minikube start --driver=docker
第一次运行可能会提示该程序(minikube)没有是不安全的程序而阻止运行,这时候需要在 “系统偏好设置” -> “安全与隐私” -> “通用” 中完成同意运行的操作,选择”依然运行”。 然后再次在终端窗口中运行启动的命令。
1 minikube start --driver="docker" --memory=2048 --image-mirror-country="cn"
系统输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 😄 Darwin 12.0.1 (arm64) 上的 minikube v1.24.0 ✨ 根据用户配置使用 docker 驱动程序 ✅ 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers 👍 Starting control plane node minikube in cluster minikube 🚜 Pulling base image ... 🔥 Creating docker container (CPUs=2, Memory=2048MB) ... 🐳 正在 Docker 20.10.8 中准备 Kubernetes v1.22.3… ▪ Generating certificates and keys ... ▪ Booting up control plane ... ▪ Configuring RBAC rules ... 🔎 Verifying Kubernetes components... ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 🌟 Enabled addons: storage-provisioner, default-storageclass 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
检查minikube状态 执行
系统显示
1 2 3 4 5 6 minikube type : Control Planehost: Running kubelet: Running apiserver: Running kubeconfig: Configured
使用 docker images 和 docker ps 命令查看
1 2 REPOSITORY TAG IMAGE ID CREATED SIZE docker/desktop-kubernetes kubernetes-v1.22.4-cni-v0.8.5-critools-v1.17.0-debian 84694ddaaffe 5 weeks ago 287MB
1 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98ffccd83d9c registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.28 "/usr/local/bin/entr…" 26 minutes ago Up 26 minutes 127.0.0.1:61388->22/tcp, 127.0.0.1:61389->2376/tcp, 127.0.0.1:61391->5000/tcp, 127.0.0.1:61387->8443/tcp, 127.0.0.1:61390->32443/tcp minikube
可以看到,实际上 pull 一个名为 desktop-kubernetes 的进行并运行了对应的容器形成的 minikube 的实例。