简单三分钟,本地搭建k8s
使用 minikube 在本地搭建 k8s 已经比以前要简单很多了。本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤。
Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架。如果您是首次阅读本系列文章。建议可以先从本文末尾的入门文章开始了解。
下载 Minikube
首先,你可能会考虑从官网下载 minikube 然后进行安装,但是这样实际上可以预知的是,在后续的使用中你可能会到由于网络的特殊性,无法正常地启动。
因此,需要使用一些特殊的办法来解决这个问题。
这里,我们直接使用由阿里云团队针对中国大陆网络环境进行优化的版本。
Mac OSX
1 | curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ |
Linux
1 | curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ |
Windows
https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-windows-amd64.exe
下载 minikube-windows-amd64.exe 文件,并重命名为 minikube.exe
下面我们都将围绕 windows 版本进行说明和演示。
虽然官方版本已经支持中国区的镜像加速,但是截至笔者自己发文的时候,还是存在各种问题。本着人的生命是有限的基本原则,我们可以先跳过这些恼人的问题。
安装 Minikube
windows 版本只要下载到特定文件夹,然后将这个文件夹,加入到 PATH 当中即可。这样以后无论在那个路径下都可以正常运行 minikube 命令。
启动 Hyper-v
虽然最新的 minikube 对于 Docker 和 Hyper-v 都是首选驱动,但是 Docker 无法使用 ingress 插件,因此考虑使用 Hyper-v。
使用管理员权限运行以下脚本来启用 Hyper-v:
1 | Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All |
启用后需要重新启动操作系统才能生效。
配置 Minikube
使用管理员权限打开一个控制台,并运行以下命令,来设置驱动、CPU 和内存:
1 | minikube config set driver hyperv |
CPU 和内存可以按照你的实际情况进行设置。其中内存的单位为 MB,12288 即表示 12G。
在 Hyper-v 中,这实际上就是虚拟机的 CPU 和内存。
启动 k8s
使用管理员权限打开一个控制台,并运行以下命令,来启动一个 k8s 节点:
1 | minikube start |
运行这段命令后,经过一段时间的等待,你应该会得到如下所示的输出内容,这就表示你已经正确启动了一个 k8s 节点:
1 | PS C:/Users/Administrator> minikube start |
启用 dashboard 看看集群
运行以下命令:
1 | minikube dashboard |
稍等片刻,浏览器便会打开 dashboard,你就可以看到集群的基本情况。
使用 lens 查看集群
除了使用原生的 dashboard,你也可以使用 lens 来查看这个集群的情况。
通过 https://k8slens.dev/ 下载和安装最新的 lens 版本。
然后打开之后,便可以通过 lens 来查看集群的基本情况。
安装 helm
为了验证这个集群的基础功能,我们尝试使用 helm 来安装一个简单的应用
首先,需要安装 helm。 helm 和 minikube 一样,是一个单文件的命令行程序。可以直接从 Github 上下载。
或者也可以通过以下地址加速下载:
https://www.newbe.pro/Mirrors/Mirrors-Helm/下载,设置好 PATH 之后,我们就可以在控制台中调用 helm:
1 | PS C:/Users/Administrator> helm version |
添加 bitnami 为 helm 包源
helm 实际上是一个包安装器,这个包被称为 charts,每个 chart 实质上就是一组 k8s 资源的定义。
因此,和软件安装一样,想要安装一个软件,首先需要选择一个软件包源来下载这个软件包。
bitnami 是 VMware 提供的一个包源,其中包含了一些已经被用于产线的常用中间件包,比如 mysql,elasticsearch,mongodb,wordpress 等等。
通过以下命令,便可以添加这个包源。
1 | helm repo add bitnami https://charts.bitnami.com/bitnami |
添加好之后,可以使用以下命令来查看已经添加的所有包源:
1 | PS C:/Users/Administrator> helm repo list |
使用 helm 安装一个 nginx
这里我们以安装一个简单的 nginx 为例,演示一下如何安装 helm chart 包。
通过运行以下命令,便可以从 bitnami 上安装一个 nginx 到集群中:
1 | helm install my-release bitnami/nginx |
同时,如果你前面安装了 lens, 那么也可以通过左侧的 APP/Charts 来安装:
安装好之后,便可以使用 k8s 的 port-forward 功能来查看安装结果。当然,在 lens 上,只需要一次鼠标点击可以:
移除安装的 helm chart
通过 lens app/release 菜单,你可以非常简单的移除刚刚安装的 chart。
停止和移除 minikube 节点
如果你想停止当前 minikube 节点以节约资源,可以运行以下命令:
1 | minikube stop |
如果你想移除安装的 minikube 节点(hyper-v 虚拟机),可以运行以下命令:
1 | minikube delete --all |
本篇小结
通过简单的 minikube 、 helm 和 lens, 你便可以拥有一个非常简单的 k8s 测试环境。
一切就是这样的轻松愉快。
相关链接
af 开头的链接为 af code,你可以通过 https://af.newbe.pro/ 来了解如何使用此链接进行快速收藏。
阿里云版本 minikub
https://github.com/AliyunContainerService/minikube
af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL0FsaXl1bkNvbnRhaW5lclNlcnZpY2UvbWluaWt1YmUiLCJ0IjoiQWxpeXVuQ29udGFpbmVyU2VydmljZS9taW5pa3ViZSIsInRzIjpbIms4cyIsIm1pbmlrdWJlIiwiXHU5NjNGXHU5MUNDXHU0RTkxIl19
Github minikub
https://github.com/kubernetes/minikube
af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19
Github minikub
https://github.com/kubernetes/minikube
af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19
Github helm
af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2hlbG0vaGVsbSIsInQiOiJoZWxtL2hlbG06IFRoZSBLdWJlcm5ldGVzIFBhY2thZ2UgTWFuYWdlciIsInRzIjpbImdpdGh1YiIsImhlbG0iXX0=
Github helm 加速下载
https://www.newbe.pro/Mirrors/Mirrors-Helm/
af://1eyJ1IjoiaHR0cHM6Ly93d3cubmV3YmUucHJvL01pcnJvcnMvTWlycm9ycy1IZWxtLyIsInQiOiJIZWxtIFx1NTZGRFx1NTE4NVx1NTJBMFx1OTAxRlx1NEUwQlx1OEY3RCB8IG5ld2JlIiwidHMiOlsiaGVsbSIsIm1pcnJvciJdfQ==
Github bitnami charts
https://github.com/bitnami/charts
af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2JpdG5hbWkvY2hhcnRzIiwidCI6ImJpdG5hbWkvY2hhcnRzOiBIZWxtIENoYXJ0cyIsInRzIjpbImJpdG5hbWkiLCJjaGFydHMiLCJoZWxtIl19
最后但是最重要!
如果读者对该内容感兴趣,欢迎转发、评论、收藏文章以及项目。
最近作者正在构建以 Actor 模式 和 事件溯源 为理论基础的一套服务端开发框架。希望为开发者提供能够便于开发出“分布式”、“可水平扩展”、“可测试性高”的应用系统——Newbe.Claptrap
本篇文章是该框架的一篇技术选文,属于技术构成的一部分。
项目文档库:claptrap.newbe.pro
联系方式: QQ 群 610394020
您还可以查阅本系列的其他选文:
理论入门篇
术语介绍篇
- Actor 模式
- 事件溯源(Event Sourcing)
- Claptrap
- Minion
- 事件 (Event)
- 状态 (State)
- 状态快照 (State Snapshot)
- Claptrap 设计图 (Claptrap Design)
- Claptrap 工厂 (Claptrap Factory)
- Claptrap Identity
- Claptrap Box
- Claptrap 生命周期(Claptrap Lifetime Scope)
- 序列化(Serialization)
- 最小竞争资源 (Minimal Competing Resources)
样例实践篇
开发入门篇
开发工具篇
- 使用 Tye 辅助开发 k8s 应用竟如此简单(一)
- 使用 Tye 辅助开发 k8s 应用竟如此简单(二)
- 使用 Tye 辅助开发 k8s 应用竟如此简单(三)
- 使用 Tye 辅助开发 k8s 应用竟如此简单(四)
- 使用 Tye 辅助开发 k8s 应用竟如此简单(五)
- 使用 Tye 辅助开发 k8s 应用竟如此简单(六)
其他番外篇
- 谈反应式编程在服务端中的应用,数据库操作优化,从20秒到0.5秒
- 谈反应式编程在服务端中的应用,数据库操作优化,提速 Upsert
- 十万同时在线用户,需要多少内存?——Newbe.Claptrap框架水平扩展实验
- docker-mcr 助您全速下载 dotnet 镜像
- 十多位全球技术专家,为你献上近十个小时的.Net微服务介绍
- 如何使用dotTrace来诊断netcore应用的性能问题
GitHub 项目地址:https://github.com/newbe36524/Newbe.Claptrap
Gitee 项目地址:https://gitee.com/yks/Newbe.Claptrap
您当前查看的是先行发布于 www.newbe.pro 上的博客文章,实际开发文档随版本而迭代。若要查看最新的开发文档,需要移步 claptrap.newbe.pro。