macOS 属于类 Unix 系统,但它并不是 Linux,因此如果/当我们需要使用 docker 之类的 linux 工具时,很不幸我们需要像在 Windows 世界中一样安装 VM 才行。Docker 当然也得这么干。
像大多数人一样,我多年来一直使用 Docker Desktop 来处理容器。它很好用,几乎所有事情都能做得井井有条。我不清楚从什么时候开始,Docker 桌面添加了对运行 Kubernetes 的支持。纸面上来看这是挺好的更新,技术上来讲也是可行的,但代价还是无法避免……(至少在我的 Mac 上)随它而来的是狂转的风扇和 747 起飞般的巨大噪音。所幸大部分时间我都可以访问远程 Kubernetes 服务器,因此我很少使用这个方法,但每当我(重新)尝试用它时,我都会很快关掉它。
安装 Kubernetes
上个月,我换了工作加入了Kaltura——所以得重新做一遍系统设置(就是那些重要的事情,比如设置开发字体、所有编辑器的主题等:)),我还决定试一试看能不能不用听那些噪音就让 Kubernetes 跑起来——结果发现似乎几个简单的步骤就能实现我的目标:
brew install hyperkit
brew install minikube
minikube start
复制代码
如果你愿意,还可以在启动之前定义 minikube 映像的资源
minikube config set cpu <whatever>
minikube config set memory <whatever>
复制代码
macOS 属于类 Unix 系统,但它并不是 Linux,因此如果/当我们需要使用 docker 之类的 linux 工具的时候,很不幸我们需要像在 Windows 世界中一样安装 VM 才行。Docker 当然也得这么干。
像大多数人一样,我多年来一直使用 Docker Desktop 来处理容器。它很好用,几乎所有事情都能做得井井有条。我不清楚从什么时候开始,Docker 桌面添加了对运行 Kubernetes 的支持。纸面上来看这是挺好的更新,技术上来讲也是可行的,但代价还是无法避免……(至少在我的 Mac 上)随它而来的是狂转的风扇和 747 起飞般的巨大噪音。所幸大部分时间我都可以访问远程 Kubernetes 服务器,因此我很少使用这个方法,但每当我(重新)尝试用它时,我都会很快关掉它。
运行 Docker
现在你就可以 kubectl deploy 随便什么东西了,只要它存在就行——但是如果你想部署一个本地创建的映像该怎么办呢?好吧,这并不复杂,你需要在 minikube 使用的 docker 上构建映像:
eval $(minikube docker-env)
复制代码
然后你可以 docker build -t <whatever>,(或其他什么 docker 命令)像往常一样。
它很好用,我将 eval 命令添加到了我的.zshrc 文件中,然后彻底不用 docker 桌面了。
补充:大约一天前,我看到 Docker 正在尝试通过 Docker 桌面获利,开始需要企业订阅许可了,因此使用 hypekit+minikube 不仅看起来效果更好(起码对我来说是这样),对于不想/无法让他们的组织支付订阅费用的开发人员来说也是一个很好的方案,所以这又是一个加分点。