作者: Dawid Ziolkowski丨Container Solution云原生工程师
最近,我一直在Kubernetes上进行各种测试和部署。因此,我不得不一次又一次创建和销毁Kubernetes集群,有的时候甚至在一个小时内执行好几次。但由于我需要测试的某个事项需要一个全新的集群,所以简单地删除所有的pod、service、deployment等,来让集群变得“像新的一样”并没有任何作用。
同时,我还需要一个尽可能与生产环境相似的集群,所以所有的本地解决方案(如Minikube、Vagrant等)都没有任何作用。
一开始,我使用了一个云提供商的托管Kubernetes,因为它易于部署,并且一旦集群启动,我只需要单击一下按钮就可以下载kubectl配置。但是它存在三个问题:
-
它会花费很多时间——每个集群大约需要10分钟进行部署。如果我每天都要部署并销毁它,那么这些时间加起来就十分可观了。
-
需要手动下载与加载kubectl配置文件(这个操作尽管很简单,但手动还是略微麻烦)
-
这是一项托管服务,因此我没有对集群的完全访问权限。
所以我决定创建一个解决方案,可以让我在云上快速又简单地部署和销毁Kubernetes集群:
https://github.com/DavidZisky/60sk3s
最终,我得到了一个简单的Bash脚本,该脚本可以在Google Cloud上创建虚拟机,部署一个4节点的Kubernetes集群(1个主节点和3个worker节点),下载kubectl配置,并将其加载