Fabric8使用说明

Fabric8 UI

本平台基于openshift搭建 
平台信息! 
URL: http://fabric8.fabric8.ipaas.seanzhau.com 
账号: admin 
密码: 12345678 
*打开以上URL时,首先会跳到openshift登录页面。

登陆平台 

界面说明 
Fabric8默认项目区域,如果需要多个Team,使用右上角的“Create Team”来创建。

  • Current等同于fabric8下面的Runtime
  • Production表示生产环境
  • Staging表示预发布测试环境,用于发布正常的测试
  • Testing表示自动化集成测试环境,自定义的脚本自动化测试

Other Namespaces区域,主要是openshift默认的namespace,主要是openshift平台用来做日志采集、监控和cicd等应用的namespace,与fabric8使用无关,严禁删除。 

进入“Runtime” 

快捷连接 
Gogs:代码管理系统,默认账号:gogsadmin:RedHat$1 
Grafana:图像监控系统,默认账号:admin:admin 
Jenkins:持续集成系统 
Kibana:日志系统 
Nexus:二进制包管理系统,默认账号:admin:admin123 
Prometheus:监控数据存储 

Jenkins 

gogs 

Nexus 

Overview 
主要是服务运行管理。 
Run:运行一个fabric8提供的快捷服务(运行在容器中)。 
Pods:pod数量伸缩管理,修改副本的数量。 

Run 

Pods 

Services 
每一个应用对应为一个service,主要是fabric8系统服务,service也可以看作为负载均衡。 

Deployments 
用于创建服务的yaml配置,点击Name可以查看配置详细内容,点击Scale可以修改副本的数量。 
 
配置内容 
 
Config快捷连接 

Replicas 
每修改一次Deployments,pod都会重新构建,因此会有多个历史版本。Replicas用于管理管理这些版本,Name后面的数字表示这个服务pod构建的次数。默认新版本启动以后,老版本会自动停止。对于不用的pod我们可以删除。 

Pods 
Pods就是具体的服务实例 
Name:服务名称 
Status:服务状态,可以查看Pod Terminal(显示器图标)和服务日志(文本图标) 
Events:是pod运行的日志,注意区分服务日志 
Restarts:重启次数 
Age:启动时长 
Images:运行这个pod使用的镜像以及版本 
Host:pod所在的宿主机 

Pod Terminal 

服务日志 

Config 
应用关联配置,也可以说应用使用外部其他服务的配置(目前还未深入了解,慎用!)。有变量配置和yaml配置2种方式。 
 
变量配置 
 
YAML配置 

Events 
pod事件 

Secrets 
各服务之间认证证书、密钥、账号密码等 

Nodes 
宿主机节点,可以看到fabric8在每个节点上运行的pod数量 

Diagram 
Pod、Node和服务端口关联拓扑 

Dashboard 
自建App在各环境发布情况,各Environment中pod数量。 

Apps 
自建应用列表,包含应用名称、仓库连接和版本信息等。 

Builds 
所有App构建历史,Pipeline快捷连接 

Environments 
环境配置,和Team界面对应 

Create Apps

Creat App 
在Dashboard和Apps界面都可以创建新的应用,点击右上角的“Creat App” 

选择应用仓库 
Setup Gogs Secret:配置gogs账号,即使有fabric8自带的代码仓库,我们选择fabric8自带的gogs仓库。 
Import from Git:使用外部代码仓库。 

Setup Gogs Secret 
第一次使用如果有账号就选择默认账号,如果没有账号则需要手动创建。点击下面的“Create New Secret” 

Create New Secret 
这个账号一定要与gogs里面的账号一致,不熟悉fabric8的情况下,别随意修改gogs默认的账号和密码,一些列的账号密码问题会很头疼。 
新建账号可以使用账号密码,也可以使用ssh key。 

重新进入创建应用界面,选择“Creat New App” 

Creat Project 
可以选择Quickstart也可以根据自己的需求来选择,Quickstart提供了一些自带的模板,自定义选择需要自己手动选择。 
Name:App名称 
Top level package:包com.abc… 
Version:版本信息 

Creat Project选择模板 

Creat Project自定义模板 

Pipeline 
根据需求选择一个pipeline,勾选Copy pipeline to project,点Next完成创建。完成创建以后默认会自动执行一次构建。 

App demo 
项目界面,使用快捷连接查看jenkins和gogs确认项目创建的情况。 

Jenkins项目界面 

Gogs项目界面 

Apps 
Java类应用默认会生成一个类似于demo-s2i的app,用于构建镜像。s2i指source to images。 

Dashboard 
Environments:项目发布的情况 
Active Pipelines:pipeline执行详情,构建完成以后点Proceed完成生产发布,点Abort取消发布。 
Commits:gogs中该项目提交的历史 

Proceed发布 

Proceed发布完成 

Pipelines历史 

Builds历史 

Settings 
Core:代码gogs连接,主要配置默认不用修改 
Secrets:配置gogs账号密码,不用修改 
Pipeline:选择pipeline模板,不用修改 

Source 
源码目录和gogs项目文件一致,fabric8项目和普通我们本地项目的差别在于以下3个文件:

  • Jenkinsfile
  • Fabric8.yml
  • pom.xml

Fabric8.yml 
声明了这是一个fabric8项目,并且定义了fabric8对于该项目的使用哪一个jenkinsfile,以及定义项目的environments。

这个文件根据我们前面选择的pipeline模板自动生成。 

Jenkinsfile 
Jenkinsfile:是项目使用Jenkins pipeline的主要文件,里面定义了pipeline的主要流程,使用基础image名称和版本信息。 

pom.xml 
与本地项目对比,多定义了fabric8-maven-plugin、 maven-compiler-plugin、metric和log插件。

我们在实际的使用过程中,以我们现有app的pom.xml为母版,将我们刚刚创建的fabric8的pom.xml内容合并到现有的app中。 

fabric8-staging 
通过“Teams - fabric8 – Environments - fabric8-staging”进入,查看pod运行状况。(参考PPT Environments) 

fabric8-testing 
通过“Teams - fabric8 – Environments - fabric8-testing”进入,查看pod运行状况。(参考PPT Environments) 

fabric8-production 
通过“Teams - fabric8 – Environments - fabric8-production”进入,查看pod运行状况。(参考PPT Environments) 

遇到过的问题

  • 无法解析gogs域名,这个主要是dnsmasq解析的问题
  • 提示目录已存在,需要进入fabric8-forge所在的pod删除/tmp/fabric8-forge/user/gogsadmin/{app名称}
  • 提示gogs仓库已经存在该项目,登录gogs删除项目
  • 进入app dashboard加载慢,主要是因为fabric8-forge下的缓存目录加载慢,可能与磁盘的IOPS有关
  • unable to resolve class io.fabric8.Utils,删除jenkins pod
  • jenkins-workflow-library.git下载慢,把仓库迁移至本地gogs
  • Pod重建重新下载maven数据,使用外部pvc存储数据
  • 创建项目时选择pipeline一直在加载,需要进入fabric8-forge删除 /tmp/fabric8-forge/user/gogsadmin/{app名称}和/tmp/fabric8-forge/namespace/user-secrets-source-awadmin/gogs/fabric8/{app名称} 下的缓存文件,重新进入项目的secrets配置。

官方文档

  • Fabric8 Spring:https://spring.fabric8.io/
  • fabric8-maven-plugin:https://maven.fabric8.io/

版权所有,转载请注明出处:https://ipaas.com.cn/blog/post/seanzhau/aa95e6279f35。

你可能感兴趣的:(fabric8)