fabric8

TurnToJPG -->


什么是fabric8

fabric8是一个开源集成开发平台,为基于Kubernetes和Jenkins的微服务提供持续发布。可以认为它是一个对Java友好的开源微服务管理平台.

fabric8也可以被视为是一个微服务DevOps平台。Fabric8提供了一个完全集成的开源微服务平台,可在任何的Kubernetes和OpenShift环境中开箱即用。

/images/2018_03_12_09_03_57_1027x410.jpg

参考:

https://jimmysong.io/posts/fabric8-introduction/

搭建过程(ArchLinux)

安装必要的包:

$ sudo pacman -S libvirt qemu dnsmasq ebtables

将自己的用户添加到kvmlibvirt用户组:

$ sudo usemod -a -G kvm,libvirt <username>

更新/etc/libvirt/qemu.conf中关于libvirt的配置:

$ sudo sed -r 's/group=".+"/group="kvm"/1' /etc/libvirt/qemu.conf > /etc/libvirt/qemu.conf

更新当前的session,以适配用户组改动:

$ newgrp libvirt

此外,我们需要在yaourt仓库中安装对应的包以使用dockermachine对于kvm的驱动:

$ sudo pacman -S docker-machine-kvm2 docker-machine
$ yaourt docker-machine-kvm

安装minishift:

$ yaourt minishift
$ minishift start --memory=7000 --cpus=4 --disk-size=50g

启动完毕后,可以检查对应的CPU/内存/磁盘信息等。

安装fabric8 on minishift(我用的是on-my-zsh):

$ echo 'export PATH=$PATH:~/.fabric8/bin' >> ~/.zshrc
$ source ~/.zshrc

配置GitHub Client ID/密码, 参考:

https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps/

URL可以填写为:

http://keycloak-fabric8.{minishift ipv4 value}.nip.io/auth/realms/fabric8/broker/github/endpoint

homepage的URL可以填写为https://fabric8.io.

由上面得到的clientID和client secret可以被引入到环境变量中:

$ export GITHUB_OAUTH_CLIENT_ID=123
$ export GITHUB_OAUTH_CLIENT_SECRET=123abc

之后:

$ gofabric8 start --minishift --package=system  --namespace fabric8

经过漫长的等待(需要翻墙), fabric8环境将就绪,用来登录的用户名/密码分别为”developer/developer”

fabric 8 playing

以system:admin登录,查看工作空间:

$ oc login -u system:admin -n default
Logged into "https://192.168.42.131:8443" as "system:admin" using existing credentials.

You have access to the following projects and can switch between them with 'oc project <projectname>':

  * default
    developer
    developer-che
    developer-jenkins
    developer-run
    developer-stage
    fabric8
    kube-public
    kube-system
    myproject
    openshift
    openshift-infra
    openshift-node

Using project "default".

可以看到,fabric8的namespaces已经被创建出来。