M1芯片下运行Kubernetes

买了一个新Mac, 是M1芯片。本来想打算安装一下Minikube用来练习一下。(Minikube是一个本地安装的K8S集群,可以低成本学习)理想的步骤是按部就班:

 

1. 安装 brew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. brew 安装 docker brew install docker

3. 安装 VirtualBox brew install virtualbox --cask

4. 安装 K8S 客户端 kubectl

5. 安装 minikube

 

没想到在第3步就卡住了。出现了错误

Error: Cask virtualbox depends on hardware architecture being one of [{:type=>:intel, :bits=>64}], but you are running {:type=>:arm, :bits=>64}.

原来是Mac M1 芯片架构不在virtualbox的支持范围之内。怎么办呢?搜索了一下, 看到一个比较好使用的本地K8S,是基于Docker的, 名字叫做kind (Kubernetes in Docker).  安装起来也是相当的简单, 只要装上Docker就可以运行。

1. 安装 brew

2. brew install kind

完成✅

可以自己敲一下kind命令。 kubectl可以直接连接上去操作

 

划一下重点:

进行K8S部署的时候需要多做一下步骤。我们知道正常的K8S可以直接从docker hub上去拉image, 或者你也可以配置一下私有registry. 不过在kind上运行的话, 你需要做两步。 打比方你需要运行MySQL镜像  bitnami/mysql:8.0.31-debian-11-r0。

1. 你需要先把image拉到本地机器 docker pull bitnami/mysql:8.0.31-debian-11-r0

2. 需要把镜像导入到 docker 容器里边(里边就是运行kind的) kind load docker-image bitnami/mysql:8.0.31-debian-11-r0 -n devopscluster

做完这两步, 你就可以在kind里吧使用这个MySQL镜像了

 

这样, 利用Docker容器化技术, 我们也可以在不同架构的芯片中构建K8S.   很庆幸, Docker已经成为很多厂商必须支持的中间件技术。

posted @ 2022-10-31 12:08  DonotRegret  阅读(452)  评论(0编辑  收藏  举报