众所周知,把大象关进冰箱里统共需要三步。那么把API Connect这个“庞然大物”关进All-in-One Kubernetes Playground里,到底需要几步呢?本文是开源项目lab-k8s-playground的高级应用案例。如果您喜欢这个项目,欢迎点击下面的按钮,关注,加星,以及贡献代码^_^
API Connect
IBM API Connect(APIC)是IBM开发的一款API生命周期管理软件,它的核心部分是基于Node.js开源框架LoopBack构建而成的。如果你对LoopBack感兴趣,欢迎访问我的深入浅出LoopBack系列教程。
标准的APIC安装,对于包括CPU,内存,存储在内的系统资源要求都比较高,通常需要多个虚拟机或物理机才能完成部署;其安装过程也比较复杂,通常需要几个小时甚至几天的时间才能完成安装,详情可见它的安装文档。
本文将告诉你,利用All-in-One Kubernetes Playground,只要五个步骤,就可以在单机环境下,把APIC部署到一个由多节点构成的标准Kubernetes集群里。整个过程是完全自动化进行的,并且可以无限次重复!
动图演示
先上一段动图演示(点击图片可放大观看哦):
然后再来看一下具体的步骤。
第一步:初始化环境
首先,我们把All-in-One Kubernetes Playground的Git库克隆到本地,进入项目的根目录,执行init
命令对Playground环境进行初始化:
$ git clone https://github.com/morningspace/lab-k8s-playground.git
$ cd lab-k8s-playground
$ ./install/launch.sh init
然后,打开~/.bashrc
文件,根据需要对某些环境变量进行调整,比如:指定本机的IP地址,Kubernetes的版本,集群的节点个数等:
# The IP of your host that runs APIC
export HOST_IP=<your_host_ip>
# The Kubernetes version, default is v1.14
export K8S_VERSION=
# The number of worker nodes, must be 3
export NUM_NODES=3
为了在当前登录终端里让上面的改动生效,我们需要执行下面的命令重新加载.bashrc
:
$ . ~/.bashrc
安装了APIC的Playground可以在包括Ubuntu,CentOS,RHEL在内的多个操作系统上运行。
第二步:准备安装包
下载APIC的安装包,并保存到$LAB_HOME/install/.launch-cache/apic
目录下,包括安装APIC所需的全部Docker镜像,以及apicup
可执行文件,例如:
$ ls -1 $LAB_HOME/install/.launch-cache/apic/
analytics-images-kubernetes_lts_v2018.4.1.4.tgz
apicup-linux_lts_v2018.4.1.4
idg_dk2018414.lts.nonprod.tar.gz
management-images-kubernetes_lts_v2018.4.1.4.tgz
portal-images-kubernetes_lts_v2018.4.1.4.tgz
这里,
$LAB_HOME
代表Playground项目的根目录。
APIC的安装包可以从IBM的官方下载站点获取到,具体方法此处略。
第三步:修改部署配置
我们可以根据需要,在下面的文件里,对APIC各个服务所使用的主机名,以及其他相关设置进行定制:
$ vi $LAB_HOME/install/targets/apic/settings.sh
当在Playground里成功完成第一次APIC安装以后,我们可以把settings.sh
里的apic_skip_load_images
设置为1
,这样可以跳过APIC的安装过程中“把Docker镜像加载到本地Private Registry”的步骤。因为,这一步骤在完成第一次APIC的安装以后就不需要再执行了,这可以为APIC的安装部署节省很多时间。
如果你对如何自定义APIC的配置感兴趣,可参考附录:自定义APIC配置
第四步:启动APIC
执行如下命令启动Kubernetes:
$ launch default
等Kubernetes启动完以后,我们可以执行
kubectl version
来验证启动是否成功。
如果你是中国地区的用户,请在执行
launch
之前设置环境变量export IS_IN_CHINA=1
,这样可以解决Kubernetes启动过程中无法从Google网站下载Docker镜像的问题。
然后,启动APIC:
$ launch apic
完成启动过程需要花费一定的时间,具体取决于你的系统配置。以我的虚机为例,在apic_skip_load_images
设置为1的情况下,大概不到15分钟就完成了。
等APIC启动起来以后,可以执行
kubectl get pods -n apiconnect
,检查APIC的所有pod是否都已经成功的启动起来了。
如果我们想销毁当前的APIC环境,再重新启动一个新的集群,只需要执行下面这一行命令就可以了:
$ launch apic::clean kubernetes::clean registry::up kubernetes apic
第五步:暴露APIC端口
可以利用下面的命令把APIC的服务端口暴露到集群外:
$ launch apic::portforward
然后,我们再把主机IP和主机名的映射定义添加到本地的/etc/hosts
文件里,这样就可以在本地的浏览器里访问APIC的UI了:
$ cat /etc/hosts
...
<your_host_ip> cm.morningspace.com gwd.morningspace.com gw.morningspace.com padmin.morningspace.com portal.morningspace.com ac.morningspace.com apim.morningspace.com api.morningspace.com
附录:自定义APIC配置
所有APIC的配置文件都保存在$LAB_HOME/install/targets/apic
目录下。其中,settings.sh
文件用于配置APIC各个服务所用的主机名,以及所需内存和存储的大小。
当完成自定义以后,我们可以执行下面的命令,让APIC对我们所做的修改进行验证:
$ launch apic::validate
在输出结果里,大家可能会注意到,有些地方会有验证错误,比如:
data-storage-size-gb 10 ✘ data-storage-size-gb must be 200 or greater
这表示,APIC的analytics
子系统所使用的data-storage-size-gb
必须要大于等于200GB。如果你觉得自己所指定的值,在当前环境下足以运行APIC的话,那就可以忽略这些错误。
更多参考资料
读到这里,相信你对开源项目lab-k8s-playground及其All-in-One Playground的应用应该有了更全面的了解了。那么,还有哪些参考资料你可以访问呢?那就请快速读一下下面这段Shell脚本编写的“代码”吧😊 相信一定难不倒你!
选择你感兴趣的分支,点击相应分支下列出的文档资源。最后,如果您喜欢这个项目,欢迎点击本文开头处(或下列代码注释里)的按钮,关注,加星,以及贡献代码^_^
function where_to_start {
case $I_want in
"to learn what it provides in general")
cat "All-in-One K8S Playground Overview"
;;
"to get started quickly")
cat "All-in-One K8S Playground Usage Guide"
cat "All-in-One K8S Playground 中文使用指南"
;;
"to understand what's behind")
cat "Launch multi-node k8s cluster locally in one min..."
cat "Kubernetes实战视频: 如何1分钟内在本地启动一个多节点集群"
cat "OpenShift v3的填坑之旅"
cat "OpenShift v4的填坑之旅"
;;
"to extend it by myself")
cat "Launch Utility Usage Guide"
cat "A Sample Target for Demo Purpose"
;;
"to learn more cool features")
cat "Quick Guide to Launch APIC Playground"
cat "把API Connect关进All-in-One K8S Playground里"
cat "All-in-One K8S Playground新增OpenShift支持"
cat "All-in-One K8S Playground支持OpenShift v4"
;;
"to contribute back")
# Feel free to click these buttons: Watch Star Fork
git clone https://github.com/morningspace/lab-k8s-playground.git
;;
esac
}
留下评论
您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *