自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

哎_小羊的博客

学会发现,学会记录,学会分享。

原创 初试Jenkins2.0 Pipeline持续集成

Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。Pipeline就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groo...

2017-05-31 11:19:42 58678 27

原创 Maven+SpringMVC+Dubbo 简单的入门demo配置

之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息。最近有时间了,打算做一个demo把dubbo在本地跑起来先。先copy一段dubbo的介绍哈!DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴...

2016-05-10 16:21:10 27422 35

原创 Prometheus 通过 consul 分布式集群实现自动服务发现

Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。Prometheus 通过 Consul 可以很方便的实现服务自动发现和维护,...

2020-03-31 22:22:05 243 0

原创 Prometheus 通过 consul 实现自动服务发现

Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。之前我们通过 Prometheus 实现监控,当新增一个 Target 时,需...

2019-11-12 09:29:12 3847 5

原创 Prometheus 使用 PushGateway 进行数据上报采集

Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而输出这些被监控的组件的 Http 接口为 Exporter...

2019-10-30 14:28:32 3177 0

原创 Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,它提供了多种度量指标类型(Timers、Guauges、Counters等),同时支持接入不同的监控系统,例如 Influxdb、Graphite、Prometheus 等。我们可以通过 Micrometer 收集 ...

2019-09-15 22:26:04 3730 3

原创 Prometheus 监控报警系统 AlertManager 之邮件告警

Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件、微信、钉钉、Slack 等...

2019-08-04 21:27:40 8810 1

原创 Spring Boot 项目转容器化 K8S 部署实用经验分享

Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流行的 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,用于容器集群的自动化部署、扩容以及运维的开源平台。Spring Boot 是 Spring 框架的集成,通过该框架可以大...

2019-07-21 17:47:23 2744 0

原创 Kubernetes 使用 PodPreset 注入信息到 Pods

PodPreset 是一种 K8s API 资源,用于在创建 Pod 时注入其他运行时需要的信息,这些信息包括 secrets、volume mounts、environment variables 等,我们可以使用标签选择器来指定某个或某些 Pod,来将 PodPreset 预设信息应用上去。使...

2019-07-07 16:03:05 1266 0

原创 使用 febootstrap 制作自定义基础镜像

febootstrap 是一个方便我们制作原生 OS 基础镜像的工具,例如 Centos、Ubuntu 等操作系统,同时还可以指定安装一些特定软件到环境镜像里头,可以使我们更方便的了解和控制基础镜像的构成,最后,通过该基础镜像在扩展成应用镜像,最终来部署服务,可以使用 febootstrap 制作...

2019-06-09 20:52:01 1242 0

原创 Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL

ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集、分析、存储数据等功能,Logstash 主要是用来日志的搜集、分析、过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 W...

2019-05-25 17:01:45 1023 7

原创 K8s 集群使用 ConfigMap 优雅加载 Spring Boot 配置文件

我们知道 Spring Boot 工程默认的配置文件名称为 application.properties,有三种方式来运行时指定运行哪个环境的配置文件,kubernetes 中可通过ConfigMap 来实现对容器中应用的配置管理,ConfigMap API 资源提供了将配置数据注入容器的方式,这...

2019-05-12 09:48:28 7647 2

原创 Rancher 2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而通过 Exporter Http 接口输出这些被监控的组件信息,而且已经有很多 Exporter 可供选择。Grafana 是一个可视化仪表盘,...

2019-04-01 10:40:26 4014 2

原创 Rancher 2.x 负载均衡配置及使用

Kubernetes 支持 4 层和 7 层负载均衡策略,其中 4 层负载均衡(或外部负载均衡)支持转发 HTTP、TCP 请求到 Nodeports 上去,7 层负载均衡(或 Ingress Controller)支持根据 Host、Path 的负载均衡以及 SSL 终端,因为它只支持转发 HT...

2019-03-19 15:50:44 11763 12

原创 Rancher 2.x 搭建及管理 Kubernetes 集群

Rancher 是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。Rancher可以轻松地管理各种环境的 Kubernetes,满足IT需求并为 DevOps 团队提供支持。Rancher 用户可以选择使用 RKE 创建 K8s 集群,也可以使用 GKE,AKS 和 EKS ...

2019-03-16 16:32:03 26910 9

原创 Docker/K8s 解决容器内时区不一致方案

使用 docker 容器启动服务后,如果使用默认 Centos 系统作为基础镜像,就会出现系统时区不一致的问题,因为默认 Centos 系统时间为 UTC 协调世界时 (Universal Time Coordinated),一般本地所属时区为 CST(+8 时区,上海时间),时间上刚好相差 8 ...

2019-03-08 10:12:58 6612 0

原创 国内环境下 Kubernetes 源码编译及运行

kubernetes 源码编译,分为本地二进制可执行文件编译和 docker 镜像编译两种,不管哪种方式,都是直接使用并不需要修改任何 k8s 代码。当我们有特殊需求时,比如需要修改 kube-proxy 对 service 的代理逻辑等,就需要修改 k8s 源码了,为了让修改的代码生效,就需要对...

2019-02-25 15:01:12 2296 3

原创 Kubernetes 集群基于 Rook 的 Ceph 存储之块设备、文件系统、对象存储

Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它可靠性高、管理方便、伸缩性强,能够轻松应对 PB、EB 级别数据。Rook 是专用于 Cloud-Native 环境的文件、块、对象存储服务。它实现了一个自动管理的、自动扩容的、自动修复的分布式存储服务。Rook 支持 Cep...

2019-01-14 09:50:12 3648 25

原创 Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统

Rook 是专用于 Cloud-Native 环境的文件、块、对象存储服务。它实现了一个自动管理的、自动扩容的、自动修复的分布式存储服务。Rook 支持自动部署、启动、配置、分配、扩容/缩容、升级、迁移、灾难恢复、监控以及资源管理,Rook 目前支持 Ceph、NFS、Minio Object S...

2019-01-10 09:52:50 4563 0

原创 使用 client-go 对 Kubernetes 进行自定义开发及源码分析

client-go 是一种能够与 Kubernetes 集群通信的客户端,通过它可以对 Kubernetes 集群中各资源类型进行 CRUD 操作,它有三大 client 类,分别为:Clientset、DynamicClient、RESTClient。通过它,我们可以很方便的对 Kubernet...

2018-12-03 10:52:47 2439 0

原创 Kubernetes 集群使用 NFS 网络文件存储

Kubernetes PersistentVolumes 持久化存储方案中,提供两种 API 资源方式: PersistentVolume 和 PersistentVolumeClaim。PV 可理解为集群资源,PVC 可理解为对集群资源的请求,Kubernetes 支持很多种持久化卷存储类型。N...

2018-11-12 10:46:28 4930 1

原创 Linux 环境下 NFS 服务安装及配置使用

NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 ...

2018-11-06 10:25:05 18963 3

原创 Go 依赖管理工具 Dep 的安装及配置

随着 Go 语言的流行,越来越多的公司和开发人员在工作中使用该语言开发项目,上一篇文章使用 Jenkins 执行 Go 工程构建镜像中,提到使用 go get 命令时,出现的一些列问题,让人很是抓狂,所以迫切需要一款可以很好管理 Go 依赖的工具。Dep 是 Go 官方依赖管理工具,通过它,我们可...

2018-10-18 10:50:18 3446 4

原创 使用 Jenkins 执行 Go 工程构建镜像

随着 Go 语言的流行,越来越多的公司和开发人员在工作中使用该语言开发项目,由于现有上线系统后端是基于 Jenkins + docker 执行任务的,那么是时候体验一下如何使用 Jenkins 执行 Go 工程构建镜像了。文章主要介绍了* 安装 Jenkins、安装 Go Plugin 插件并配置...

2018-10-08 11:37:44 4260 5

原创 学习基于 Kubernetes 的 Serverless 无服务架构 Fission

Serverless 就是指应用的开发不再需要考虑服务器的硬件基础设施,而是依赖于第三提供的后端服务(Baas)和应用逻辑运行容器(FaaS),Fission 是由 Platform9 维护的一个开源的项目,它是基于 Kubernetes 的无服务框架。我们可以编写任何语言的 Function 代...

2018-09-13 10:39:38 2051 1

原创 学习 Kubernetes 原生 Serverless 无服务架构 Kubeless

Serverless 就是指应用的开发不再需要考虑服务器的硬件基础设施,而是依赖于第三提供的后端服务(Baas)和应用逻辑运行容器(FaaS),但是并不是意味着没有服务器,而是服务器以特定功能的第三方服务的形式存在。Kubeless 是 Kubernetes 原生无服务器架构,目的是为了方便部署少...

2018-09-04 10:21:29 3163 7

原创 Kubernetes CRD (CustomResourceDefinition) 自定义资源类型

Kubernetes 中一切都可视为资源,它提供了很多默认资源类型,能够满足大多数日常系统部署和管理的需求。在一些特殊的需求场景下,这些现有资源类型就满足不了,那么这些就可以抽象为 Kubernetes 的自定义资源,在 Kubernetes 1.7 之后增加了对 CRD 自定义资源二次开发能力来...

2018-08-20 18:44:18 8843 3

原创 部署 Prometheus Operator 监控 Kubernetes 集群

我们知道 Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,而 Prometheus Operator 是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控制器,它是为了简化在 Kubernetes 上部署、管理和运行 Promet...

2018-08-14 09:55:19 13834 7

原创 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql

Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。我们常用的 Kubernetes 容器集群管理中,通常会搭配 Prometheus 一起来进行监控。Grafana 是一个可视化仪表盘,它拥...

2018-08-02 10:28:02 6637 2

原创 Kubernetes 集群中运行 GitLab-Runner 来执行 GitLab-CI

GitLab-CI 是一套 GitLab 提供给用户使用的持续集成系统。GitLab-Runner 是配合 GitLab-CI 进行使用的,GitLab 里面每个工程都会定义一些该工程的持续集成脚本,该脚本可配置一个或多个 Stage 例如构建、编译、检测、测试、部署等。当工程有代码更新时,Git...

2018-07-21 21:19:17 10819 3

原创 Kubernetes 集群使用 Helm 搭建 GitLab 并配置 Ingress

Helm 是一个管理 Kubernetes Charts 的工具,Charts 可以理解为预先配置的 Kubernetes 资源包,通过 Helm 可以轻松的安装和管理 Kubernetes 应用,类似我们平时使用的 apt、yum、homebrew 工具。服务端 Tiller 运行在 Kuber...

2018-07-15 21:16:13 8878 3

原创 使用 Jenkins 执行持续集成的几个实用经验分享

使用Jenkins执行持续集成的几个实用经验分享。包括修改JVM的内存配置、修改Jenkins主目录、配置优化减少磁盘空间占用、丢弃旧的构建配置、修改工作空间和构建记录根目录、设置全局属性、JDK/Maven/Gradle 等软件多版本安装、设置构建超时时间、配置视图分类管理Job、配置多节点管理...

2018-06-09 21:34:21 13218 0

原创 记录解决 Spring Boot 项目继承依赖导致编译失败问题

问题背景,公司一个使用 Spring Boot 的 Mutil 项目,根据 Spring Boot 官方文档配置好 Parent 继承 spring-boot-starter-parent POM 的时候可以正常编译运行,但是正式上线时,需要切换到继承公司统一的插件集合 Parent POM...

2018-06-04 18:10:29 3095 0

原创 临时解决 LDAP 导致 GitLab Members Blocked 问题

同事反馈说他的邮箱账户 GitLab 可以正常登录,但是其所属项目本地 Clone 不下来,GitLab 系统项目 Members 下该用户状态为 `Blocked`。仔细查看了同事的账户信息,发现其本地账户跟 GitLab 上面的账户不统一导致的。本机记录通过修改 Gitlab PostgreS...

2018-05-09 15:30:16 3496 0

原创 自动化 DevOps 使用 Codeclimate 执行代码质量分析

Codeclimate 是为代码质量分析平台提供的一个命令行接口工具,通过它可以在本机 Docker 容器中对要分析的代码执行质量分析,并生成分析报告。我们熟知常用的代码质量检测工具例如 SonarQube、CheckStyle 等等,而 Codeclimate 是这些各种代码类型质量分析工具的集...

2018-04-20 10:06:03 3325 0

原创 初试 Jenkins 使用 Kubernetes Plugin 完成持续构建与发布

持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,然而传统的 Jenkins Slave 一主多从方式会存在一些痛点,比如:主 Master 发生单点故障时,整个流程都不可用了;每个 Slave 的配置环境不一样,维护起来...

2018-03-31 11:56:47 27936 11

原创 使用 Spinnaker 自动化部署代码到 Kubernetes 示例

本文介绍如何使用 Spinnaker自动化部署代码到 Kubernetes 中,主要包含如下:GitHub 配置、DockerHub 配置、Kubernetes & Spinnaker 配、Spinnaker 集群管理(创建应用、创建负载均衡策略、创建服务组)、Spinnaker 部署管理...

2018-03-17 14:18:47 9158 5

原创 初试 Kubernetes 集群中 Spinnaker 平台之集群管理

Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它提供在多种平台上实现开箱即用的集群管理和部署功能的平台。我们可以通过其强大的集群管理特性,来查看和管理集群中的资源。集群管理主要包括服务组(Server Group)、集群(Cluster)、应用(Applications)...

2018-03-13 11:58:38 2211 1

原创 初试 Kubernetes 集群中使用 Helm 搭建 Spinnaker 平台

Helm 是一个管理 Kubernetes Charts 的工具,Charts 可以理解为预先配置的 Kubernetes 资源包,通过 Helm 可以轻松的安装和管理 Kubernetes 应用,类似我们平时使用的 apt、yum、homebrew 工具。本文介绍如何在 Kubernetes 集...

2018-03-07 09:57:17 7424 31

原创 初试 Kubernetes 动态卷配置使用 RBD 作为 StorageClass

Kubernetes 集群存储 PV 支持 Static 静态配置以及 Dynamic 动态配置,动态卷配置 (Dynamic provisioning) 可以根据需要动态的创建存储卷。之前的静态配置方式,集群管理员必须手动调用云/存储服务提供商的接口来配置新的固定大小的 Image 存储卷,然后...

2018-01-21 14:22:40 5556 7

提示
确定要删除当前文章?
取消 删除