暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

All-in-One K8S Playground使用指南

晴耕小筑 2019-09-09
610

本文是开源项目lab-k8s-playground及其All-in-One Playground的中文使用指南!如果您喜欢这个项目,欢迎关注,加星,以及贡献代码^_^


篇幅所限,本文为节选,点击文末阅读原文,查看完整内容


在“极速搭建Kubernetes集群的新方案”一文里,我们提到过开源项目lab-k8s-playground。它提供了一种用于在单机环境下部署多节点Kubernetes集群的方法,并在此基础上进行了多种优化,以加速集群的启动过程。有了这样一套环境,我们就可以高效地在本地进行各种和Kubernetes有关的学习,开发,部署,测试,以及演示了;或者,也可以把它放到CI/CD的Pipeline上,快速启动起一个用于测试的环境来。


现在,该项目又有了全新升级,那就是“All-in-One Playground”🎉🎉🎉利用它,我们可以一键搞定Kubernetes部署:通过把部署集群之前要做的很多复杂的准备工作固化在一套脚本里,我们就不用再关心集群部署的优化细节了。只要一行命令,就能完成集群部署。不仅如此,这个Playground环境里还预装了很多常用的Kubernetes命令行工具,并支持Istio等应用的追加部署。所有这些功能,都可以一键式搞定,并且可以反复卸载和安装!


是不是有点迫不及待地想体验一下这个Playground了呢?下面我们就一起来了解一下这个All-in-One Kubernetes Playground吧!


我都等不及啦!


首先,我们把lab-k8s-playground克隆到本地,并进入该项目的根目录:


$ git https://github.com/morningspace/lab-k8s-playground.git


启动Playground非常简单,如果你的机器安装了Vagrant Box,那么只要一条命令就行了:


$ vagrant up


整个启动过程大约需要一杯咖啡 ☕️ 的时间。具体取决于你的系统配置,以及分配给虚机的资源大小,还有网络环境等。以我的笔记本为例,8核CPU,16G内存,网络畅通的情况下,大概15分钟内完成。


除了Vagrant Box,Playground也支持直接在宿主机上启动。只要在项目的根目录下执行如下命令,对环境进行初始化:


$ ./install/launch.sh init


因为这条命令会修改当前用户Home目录下的.bashrc,所以建议执行完毕后重新登录一次终端,以便在新的用户Session里重新加载.bashrc。或者,你也可以执行下面的命令,直接在当前Session里主动加载.bashrc:


$ . ~/.bashrc


另外,.bashrc里还有一些和Playground相关的环境变量,你可以根据自己的实际需求对它们进行修改。如果不修改也没关系,脚本会为它们指定默认值:


# The IP of your host, default is 127.0.0.1
export HOST_IP=
# The Kubernetes version, default is v1.14
export K8S_VERSION=
# The number of worker nodes, default is 2
export NUM_NODES=


最后,我们执行下面的命令,把Kubernetes集群启动起来:


$ launch default


也许你已经注意到,这里我们用的是launch,而不是带着一串路径的launch.sh。当执行完init命令对Playground进行初始化,并确保.bashrc被重新加载以后,我们就可以直接使用launch命令了。你可以在任意目录下执行launch,而不必非得在项目的根目录下。


我该怎么访问呢?


环境准备好了,该怎么访问呢?如果是在Vagrant Box里启动的集群,我们可以利用vagrant ssh命令进入虚机环境。如果是在宿主机上启动的集群,那什么也不用做,就可以直接访问集群了。比如,用kubectl对集群进行管理,或者用一下预装的那些Kubernetes常用命令行工具。


不仅如此,Playground还提供了一个Web终端,可以在浏览器里模拟普通终端,执行命令行命令。只要在浏览器地址栏输入https://192.168.56.100:4200就可以访问到Web终端。根据提示输入用户名和密码,如果你用的是Vagrant Box,那么用户名密码分别是vagrant和vagrant。这里的IP地址对应的就是运行Playground的那台机器的地址,如果你用的是Vagrant Box,则对应虚机的IP地址,默认值为192.168.56.100。当然,它也是可以定制的。


另外,对于基于Vagrant Box建立起来的Playground环境,如果想暂停手头和Playground相关的工作,可以执行vagrant suspend命令,把当前的虚机环境停掉。


要想再次恢复虚机环境,则执行vagrant resume命令。和第一次启动虚机环境不同,再次启动会变得非常快。这是因为它只是简单地把虚机环境恢复,而不需要重新初始化和安装所需要的软件了。


最后,如果不想保留当前的虚机环境,比如想重新启动一个配置和原来不一样的新环境,可以执行vagrant destroy命令,这会把当前的虚机彻底清除掉。


更多Playground的玩儿法……


  • 默认启动起来的Playground只包含了一个Kubernetes集群,如果想在这个基础上继续部署安装更多其他的应用,比如Istio,那该怎么办呢?

  • 随着更多应用被部署到集群,如果因为某些原因把集群“玩”坏了,怎样通过为当前集群建立快照,快速恢复集群呢?

  • 借助Private Registry,可以免去访问远程Public Registry的需要,极大地提高部署速度。但是假如保存其中的Docker镜像有变动了怎么办呢?

  • 如果Private Regsitry装在虚机里,它会随着虚机的销毁而销毁。如何避免每次重启虚机都要经历初始化Private Registry这一耗时的环节呢?

  • 有了Private Registry,我们可以实现在没有网络连接的情况下运行集群,从而实现真正的“All-in-One”,那么具体该怎么操作呢?

  • 针对Playground,还有哪些地方我们可以定制的呢?比如利用Vagrantfile,环境变量,以及自定义安装脚本来定制Playground,还有针对中国地区用户的专属优化! 


更多精彩内容,请点击下面的阅读原文,查看完整内容!

文章转载自晴耕小筑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论