在Kubernetes集群里安装微服务DevOps平台fabric8

fabric8-platform:生成fabric8微服务平台的分发 立即下载

使用官方工具包模板

前提是在k8s上安装好了kube-dns和ingress-controller组件,和helm工具。

添加helm源

helm repo add fabric8 https://fabric8.io/helm

使用官方安装模板

会自动安装一堆的deployment、PersistentVolumeClaim和ConfigMap; 
在提供足够的PersistentVolume,并根据实际情况修改好必要的ConfigMap之前,大部分组件是不可能正常运行的。

helm install fabric8/fabric8-platform --name fabric8-platform

  
  
 

服务访问

修改exposecontroller的ConfigMap

fabric8平台包含一个exposecontroller服务,负责把集群内运行的各个DevOps组件暴露到集群外部; 
如下修改,使exposecontroller通过Ingress让各DevOps组件对外提供服务,使用统一的域名,如”wzp.local”。

cat <<EOF | kubectl apply -f -
apiVersion: "v1"
data:
  config.yml: |-
    exposer: "Ingress"
    domain: "wzp.local"
kind: "ConfigMap"
metadata:
  name: "exposecontroller"
EOF

exposecontroller正常运行后,就会发现集群内多了很多ingress; 
用于从k8s集群外部(如浏览器)访问内部运行的GIT仓库、Maven仓库、image仓库、jenkins、fabric8平台。

让内部dns提供泛域名解析

由于内部组件除了使用k8s的service名称外,也有可能使用与外部访问相同的地址,如”wzp.local”,来访问内部其他组件;所以需要给内部dns添加启动参数,配置上泛域名解析规则:--address=/wzp.local/192.168.175.83 
  
  
 

提供PersistentVolume

查看PersistentVolumeClaim

先看看各devops组件具体的存储需求

kubectl get pvc --all-namespaces
kubectl get pvc <pvc名称> -n <pvc的namespace> -o yaml

创建PersistentVolume

只有一个node的时候,才可使用hostPath作为存储路径。 
建议先把所有pvc的定义记录后删除pvc,再手动一对一对地创建pv和pvc。

mkdir -p /kube-pv1/jenkins-mvn-local-repo-dev

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-class: standard
  labels:
    provider: fabric8
    project: jenkins
    version: 2.2.311
    group: io.fabric8.devops.apps
  name: jenkins-mvn-local-repo-dev
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /kube-pv1/jenkins-mvn-local-repo-dev
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  namespace: dev
  annotations:
    volume.beta.kubernetes.io/storage-class: standard
  labels:
    provider: fabric8
    project: jenkins
    version: 2.2.311
    group: io.fabric8.devops.apps
  name: jenkins-mvn-local-repo
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
EOF

查看PersistentVolume的使用情况

kubectl get pv

pv使用情况

  
  
 

  
  
 

处理pod启动失败

预留更长的启动时间

如果不能及时启动成功,k8s会反复重启pod; 
可修改deployment里的initialDelaySeconds配置,在性能不足的机器上给pod预留更多的启动时间。

自行下载并tag镜像

如果从原始地址下载镜像失败,需要自行使用docker pull命令从阿里云下载对应的image,并使用docker tag命令给pull下来的image打上和错误描述里一模一样的标签; 
然后删除错误pod,让ReplicaSet立即重新创建pod。 
许多功能还依赖busybox,需要预先下载image并打上各种标签。

docker pull googlecontainer/busybox:latest
docker tag googlecontainer/busybox:latest busybox:latest
docker tag googlecontainer/busybox:latest gcr.io/google_containers/busybox:latest

  
  
 

处理CD流水线错误

下载pipeline Groovy library失败

“@Library”命令只能从github.com网站在线下载和运行library,想从本地git地址下载library,除非自行修改插件: 
https://github.com/jenkinsci/pipeline-github-lib-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/github/library/GitHubLibraryResolver.java

由于github强制使用https,需要在jenkins的deployment配置里添加GIT_SSL_NO_VERIFY环境变量,值为”1”。

运行privileged容器

jenkinsci/kubernetes-plugin会启动新的pod来运行jenkins slave,而slave需要进行docker image的制作与上传;于是每台k8s node上都要允许运行privileged容器,k8s node上的docker deamon会监听/var/run/docker.sock,响应由privileged容器发出的docker build等命令。 
修改/etc/kubernetes/config参数文件

KUBE_ALLOW_PRIV="--allow-privileged=true"

  
  
 

访问devops平台

Ops的界面

提供web console,可在页面上直接登入容器,执行命令。

webconsole
安装fabric8提供的Management模块,还可以统一查看集群资源占用(使用Heapster+InfluxDB+Grafana)与进行日志搜索(使用ElasticSearch+Logstash+Kibana)。

Dev的界面

利用jenkins pipeline与jenkinsci/kubernetes-plugin,自动进行编译、制作镜像、部署、测试等任务。 
由于整个CD过程按照pipeline脚本进行,务必保持各种命名规范,比如编译打包结果的名称需与项目的名称一致,打包结果的输出位置不可变动。 
pipeline

基于fabric8io的kubernetes Java 依赖包 基于fabric8io的kubernetes Java 依赖包,jar包列表: fabric-utils-2.0.47.jar httpclient-4.5.3.jar kubernetes-client-3.0.3.jar kubernetes-model-2.0.8.jar log4j-1.2.15.jar log4j-over-slf4j-1.7.25.jar slf4j-api-1.5.6.jar slf4j-jdk14-1.5.6.jar 立即下载

相关推荐

k8s上一键部署生产级别的hyperledger fabric网络

k8s上一键部署生产级别的hyperledger fabric网络,支持LevelDB和CouchDB状态数据库,支持solo、kafka、etcdRaft排序模式、支持各组织下的blockchain-explorer区块链看板、支持一键生成connection profile配置文件等

K8S入门系列(10)-使用开源项目io.fabric8之docker-maven-plugin插件打包Docker镜像至私服

前言 随着容器化部署方式的流行,各IT公司大部分已经完成了云原生架构实现,如何将 项目工程打包成镜像并运行?国外已有众多基于Maven插件实现的打包方案,本文 已实测并实现了几种常见的打包方式,比如谷歌公司的jib、spotify等插件,实际 使用中,总出现与实际项目不太契合等各种问题,继续搜索实测后,发现了一个开源 打包插件,功能强大且使用简单,但国内相关资料甚少,所以鄙人记录之,望能帮助 到需要的小伙伴~ 插件介绍 基网地址:https://github.com/fabric8io/docker-

记录知识、锤炼自我 3026

使用Maven插件构建Docker镜像

详细 介绍 了如何使用Maven插件构建Docker镜像的步骤。

fabric8io/kubernetes-client 简单使用

1、创建默认的k8s客户端 Config config = new ConfigBuilder().withMasterUrl(&amp;amp;quot;http://x.x.x.x:1234&amp;amp;quot;).build(); KubernetesClient client = new DefaultKubernetesClient(config); 2、获取目标资源的操作权,相应实现类的对象,常见如下。 client.names...

狠狠地幸福的博客 2万+

使用 Java 操作 Kubernetes API

目录 本文目标 k8s-client-java选型 kubernetes-client/java和fabric8io/kubernetes-client对比 kubernetes-client/java的使用 REST API kubectl api-versions REST API 实例:      API Object 整体划分图 (红星符号代表常用资源) kubernetes-client/java客户端API接口识别 ApiClient初始化&认证 CRD资源增删改查 操作示例 Namespaces增删改查 Node增删改查 Pod增删改查 优先级 Services增删改查 操作示例

FI 应计对象的创建和摊销

创建/修改:ACACTREE01/ACACTREE02 应计对象的过账:ACACPOSTING

nancyln9711的博客 903

Fabric8 Kubernetes 客户端安装与使用指南

Fabric8 Kubernetes 客户端安装与使用指南 项目地址:https://gitcode.com/gh_mirrors/ku/kubernetes-client 一、项目介绍 Fabric8 Kubernetes客户端是用于Java环境下的Kubernetes操作工具包。它提供了一套丰富的接口集合,使得开发人员能够在Java应用程序中无缝地进行Kubernetes资源管理,包括Pods...

gitblog_00638的博客 1079

自动驾驶开发者必看:如何用Impromptu VLA数据集提升模型在乡村道路的表现(附实战代码)

本文为自动驾驶开发者提供了利用Impromptu VLA开源数据集提升模型在乡村道路等极端场景表现的实战指南。该数据集专门针对边界模糊道路、非常规障碍物等非结构化环境,通过精选的8万多个极端场景片段,帮助模型弥补数据分布偏差。文章详细介绍了环境搭建、数据准备、模型微调及性能评估的全流程,并附有实战代码,旨在系统性提升自动驾驶系统在长尾场景下的鲁棒性。

t8u9v0w1x的博客 243

Fabric8使用说明

Fabric8 UI本平台基于openshift搭建 平台信息! URL: http://fabric8.fabric8.ipaas.seanzhau.com 账号: admin 密码: 12345678 *打开以上URL时,首先会跳到openshift登录页面。登陆平台 界面说明 Fabric8默认项目区域,如果需要多个Team,使用右上角的“Create Team”来创建。Current等同于...

mark's technic world 9638

「免费开源」从 OCR 识别到结构化输出:合同文本高效比对的完整解决方案!

本文将系统拆解这一解决方案的技术逻辑、实施步骤与落地价值,为企业合同管理数字化转型提供实操指南。字段提取:自动识别并提取预设的关键字段(如 “甲方”“乙方”“合同金额”“履约期限” 等),若遇到模糊表述(如 “付款时间为合同签订后 30 个工作日内”),系统可自动解析为 “履约期限:合同签订日 + 30 工作日”;预设结构化字段:根据合同类型(如采购合同、服务合同、租赁合同),定义需提取的关键字段(如 “甲方名称”“乙方名称”“合同金额”“有效期起 / 止日期”“履约地点”“违约金比例” 等);

qxsz_yyh的博客 836

01 Aras Innovator二次开发实战:从IOM到AML的完整交互指南

本文详细介绍了Aras Innovator二次开发实战,从IOM到AML的完整交互指南。通过JavaScript和C#代码示例,展示了如何在客户端和服务端使用IOM进行开发,并深入解析AML语言的基础语法和调试技巧。文章还提供了文档管理和BOM管理等典型场景的实战案例,帮助开发者快速掌握Aras Innovator二次开发的核心技术。

wind6的博客 650

基于Fabric8将SpringBoot工程快速构建镜像并发布到k8s详细教程

基于Fabric8将SpringBoot工程快速打包镜像并发布到k8s详细教程 dockerfile、deployment.yml...很难写?构建应用到k8s很麻烦? 本文教你一句命令实现springboot发布应用到k8s, 告别那些年的dockerfile\deployment.yml\service.yml...

富强说 4038

Fluent求解器——湍流参数的设置

Fluent湍流参数的介绍和设置。

Ronko_G的博客 4万+

Fabric8 Kubernetes Java客户端:云原生开发的终极利器

在当今云原生技术蓬勃发展的时代,Kubernetes已经成为容器编排的事实标准。对于Java开发者而言,Fabric8 Kubernetes Java客户端提供了与Kubernetes集群无缝集成的完美解决方案,让您能够轻松管理云原生应用的生命周期。 ## 为什么选择Fabric8 Kubernetes客户端? Fabric8 Kubernetes Java客户端为Java开发者提供了丰富的功

gitblog_00754的博客 654

Django 小实例S1 简易学生选课管理系统 —— 〇、初步介绍与演示

python Django实现的一个简易的教务选课系统。 介绍与演示的视频版本已发到我的b站: https://www.bilibili.com/video/BV1er4y1w7ty。 项目已上传到我的github: https://github.com/BigShuang/SimpleStudentCourseManagementSystem。 S1总目录: 〇、初步介绍与演示 一、项目流程梳理与数据库设计 ======================= 大爽歌作,made by big shuang.

大爽老师的博客 5945

智能汽车嘚啵嘚 --- 智能座舱第七稿:智能座舱的升级OTA

智能汽车嘚啵嘚 --- 智能座舱第七稿:智能座舱的升级OTA

Soly_kun的博客 414

【亲测免费】 探秘Fabric8:一个智能Kubernetes平台的深度解析

探秘Fabric8:一个智能Kubernetes平台的深度解析 项目简介 是一个开源项目,由fabric8.io团队构建,旨在为开发人员提供一个全面、集成且易于使用的Kubernetes平台。它的核心目标是简化微服务架构下的开发、部署和管理流程,通过强大的工具集和丰富的生态系统,帮助团队在Docker容器和Kubernetes之上实现敏捷开发。 技术分析 1. 基于Kubernetes Fabri...

gitblog_00008的博客 1464

基于Python的电商平台商品信息爬取与价格监控系统设计与实现

本文详细介绍了一个基于Python的电商平台商品信息爬取与价格监控系统的设计与实现。系统采用最新的Python爬虫技术栈,包括Scrapy框架、Selenium自动化测试工具、BeautifulSoup解析库等,实现了对主流电商平台商品信息的自动化采集、存储、分析和可视化展示。文章从系统架构设计、关键技术实现、核心代码解析等方面进行了全面阐述,并提供了完整的代码实现。该系统不仅适用于毕业设计,也可作为商业价格监控系统的原型。关键词:Python爬虫;电商数据采集;价格监控;Scrapy;Selenium;

2201_76125261的博客 963

开源微服务管理平台fabric8简介

前言无意中发现Fabric8这个对于Java友好的开源微服务管理平台。其实这在这里发现的Achieving CI/CD with Kubernetes(by Ramit Surana,on February 17, 2017),其实是先在slideshare上看到的。大家可能以前听过一个叫做fabric的工具,那是一个 Python (2.5-2.7) 库和命令行工具,用来流水线化执行 SSH 以...

mark's technic world 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

探索Spring Cloud Kubernetes:无缝集成K8s与微服务

在当今的云计算时代,Kubernetes(K8s)已成为容器编排的事实标准,而Spring Boot和Spring Cloud则是Java微服务开发的首选框架。`spring-cloud-kubernetes`项目将这两个强大的工具集结合在一起,为开发者提供了一种无缝的方式,利用Kubernetes平台的力量来构建、部署和管理Spring Cloud应用。 ## 项目简介 `spring-cl

gitblog_00064的博客 1405

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

开源微服务管理平台--Fabric8

fabric8是一个开源集成开发平台,为基于Kubernetes和Jenkins的微服务提供持续发布。使用fabric可以很方便的通过Continuous Delivery pipelines创建、编译、部署和测试微服务,然后通过Continuous Improvement和ChatOps运行和管理他们。Fabric8微服务平台提供:Developer Console,是一个富web应用,提供一个...

chenruoshui的专栏 5565

raspberry pi_使用Kubernetes在Raspberry Pi上进行集群计算

raspberry pi 是否曾经想打造自己的云? 现在你可以! 它所需要的只是一些廉价的开源硬件和开源软件。 只需花费约200美元,我就可以使用Fabric8在Kubernetes云操作系统上安装四台Raspberry Pi 2 。 Fabric8是一个开源DevOps和集成平台,可在任何Kubernetes或OpenShift环境中直接使用,并提供连续的交付,管理,ChatOps和Cha...

cuml0912的博客 261

Fabric8简介

前言 无意中发现 Fabric8 这个 对于Java友好的开源微服务管理平台 。 其实这在这里发现的 Achieving CI/CD with Kubernetes (by Ramit Surana,on February 17, 2017),其实是先在 slideshare 上看到的,pdf可以 在此下载 ,大小2.04M。 大家可能以前听过一个叫做 fabric 的工具,那是一个 ...

xiaomin1991222的专栏 805

多角度展现 Linux 集群之美

在很长一段时间内,开发和运维的工作泾渭分明、互不干涉,只有在系统出现故障时,双方才会认真地打个照面,长此以往,摩擦和误会必然存在。此时,有经验的运维工程师会考虑将一部分手动工作脚本化,以减...

华章IT官方博客 680

开源的DevOps生态链条简介

一 我所接触的 Devops既不是软件、也不是网站、更不是代码,而是一组方法(method)、过程(process)与系统(system)的统称! Devops包含了很多优秀想法和原则,它鼓励开发部门和运维部门通力合作。在DevOps环境中,开发人员和系统管理员会构建一些关系、流程和工具,从而更好的与客户互动,最终提供更好的服务。 核心:成为一个Devops工程师不是一朝一夕的过程,长...

wzj_110的博客 834
上一篇: Spring Cloud Kubernetes
下一篇: CentOS 7 安装 GlusterFS
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值