自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(196)
  • 收藏
  • 关注

原创 mycat深度详解(一)

1、概念从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。2、原理MyCat技术原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如

2023-12-10 16:17:21 163

原创 logstash之grok插件自定义规则学习

1、前言近期通过ELK(Elasticsearch, Logstash, Kibana)对Nginx产生的日志进行采集,但是在对nginx的日志格式进行预处理的时候使用到了logstash的grok的插件,特意在此为大家分享下个人的学习总结。2、Grok提供的常用Patterns说明及举例要学习Grok的默认表达式,我们就要找到它的具体配置路径,路径如下:patterns路径[logstash安装路径]/vendor/bundle/jruby/x.x.x/gems/logstash-pattern

2023-12-10 16:14:43 674

原创 CentOS7 部署PostgreSQL

参考文档:https://www.postgresql.org/download/linux/redhat/

2023-12-06 10:21:30 486

原创 在gitlab中使用gitlab-sshd替换ssh服务

参考:https://docs.gitlab.com/ee/administration/operations/gitlab_sshd.html。

2023-12-05 22:17:12 803

原创 云原生的 CI/CD 框架tekton - Trigger(二)

上一篇为大家详细介绍了,由于里面涉及到的概念比较多,因此需要好好消化下。同样,今天在特别为大家分享下tekton - Trigger以及案例演示,希望可以给大家提供一种思路哈。

2023-12-05 22:07:30 1089

原创 云原生的 CI/CD 框架tekton - pipeline(一)

Tekton 的前身是 Knative 项目的 build-pipeline 项目,这个项目是为了给 build 模块增加 pipeline 的功能,但是随着不同的功能加入到 Knative build 模块中,build 模块越来越变得像一个通用的 CI/CD 系统,于是,索性将 build-pipeline 剥离出 Knative,就变成了现在的 Tekton,而 Tekton 也从此致力于提供全功能、标准化的云原生 CI/CD 解决方案。

2023-12-05 15:11:21 979 1

原创 gitlab高级功能之mirroring - pull mirroring(二)

可以通过在GitLab的仓库中创建拉取镜像,将分支、标签和提交从上游仓库复制到您的。与推送镜像不同,拉取镜像按计划从上游(远端)仓库检索更改。为防止镜像与上游仓库分叉,请勿将提交直接推送到下游镜像,改为将提交推送到上游仓库。在一定时间内自动。私有化部署实例可以配置拉取镜像间隔。当管理员强制更新镜像。当 API 调用触发更新时。默认情况下,如果下游拉取镜像上的任何分支或标签与本地仓库不同,GitLab 将停止更新该分支。这可以防止数据丢失。上游仓库中删除的分支和标签不会反映在下游仓库中。

2023-12-05 14:47:03 1458

原创 gitlab高级功能之mirroring - push mirroring(一)

推送镜像是一个下游存储库,用于镜像对上游存储库所做的提交。推送镜像被动接收对上游存储库所做的提交的副本。为防止镜像与上游存储库分流,请勿将提交直接推送到下游镜像。改为将提交推送到上游存储库。

2023-12-04 18:03:20 2330

原创 极狐gitlab ci job拉取代码之前执行命令

有时候我们希望可以在检索 Git 代码库和任何 submodules 之前执行一下命令操作,接下来为大家介绍下通过 hooks:pre_get_sources_script 可以满足该场景的使用。此功能 15.6 版本引入,参考 hookspre_get_sources_script。执行结果:方式2:在 runner 中配置参数 pre_get_sources_script参考:Runner Advanced configuration,这里以 docker runner executer 为例

2023-12-04 10:46:32 367

原创 使用trigger-forward跨流水线传递参数

默认情况下,只有yaml定义的变量被传递给下游管道,使用forward关键字,现在可以传递它手动管道变量下游管道。forward:yaml_variables是一个已经存在的行为,默认为true。当为true时,将传递给yaml定义的变量到下游管道。forward:pipeline_variables是一个新特性,默认为false。当为true时,手动管道变量被传递给下游管道。

2023-12-02 22:13:22 327

原创 gitlab高级功能之容器镜像仓库

今天给大家介绍一个gitlab的高级功能 - Container Registry,该功能可以实现docker镜像的仓库功能,将gitlab上的代码仓的代码通过docker构建后并推入到容器仓库中,好处就是无需再额外部署一套docker仓库。

2023-12-02 21:49:57 1645

原创 gitlab高级功能之CI/CD组件 - 实践(二)

上一篇主要讲解了CI/CD组件的,看起来稍微有一点枯燥,那么接下来给大家演示下如何使用。

2023-12-01 17:29:13 716

原创 gitlab高级功能之CI/CD组件 - 原理介绍(一)

引入16.0,16.6正式使用CI/CD 组件是可重用的单管道配置单元,使用它们来组成整个管道配置或较大管道的一小部分;CI/CD组件可以选择接受输入参数;CI/CD 组件与使用 include 关键字添加的其他类型的配置类似,但具有以下几个优点:组件可以以特定版本发布和使用;多个组件可以组合在同一个项目中并使用单个标签发布;组件可以在 CI/CD 目录中找到。

2023-12-01 17:19:47 988

原创 在gitlab上使用server_hooks -实例级和项目级

当我们初始化一个项目之后,.git 目录下有一个 hooks 目录,可以看到上图左侧有很多执行任务,比如 pre-commit,代表在运行这些命令之后或之前,会进行一些校验和检测来执行相应任务。与许多其他版本控制系统一样,Git 有一种方法可以在发生某些重要操作时,触发自定义脚本,即 Git Hook(Git 钩子)。对于配置单个仓库的server hooks也是需要开启全局的配置,否则会导致脚本在某个repo的相对路径下不会生效。该脚本的作用是规范gitlab提交的信息。

2023-11-30 19:41:54 2080

原创 基于gitlab的webhook集成jenkins,并在gitlab流水线中展示jenkins的job状态信息

updateGitlabCommitStatus 可以将jenkins的构建信息写到gitlab的流水线中。可以是用户名和密码,也可以是个人token,建议两个都保存下即可,后面会有用到。此处需要gitlab的令牌token,并需要通过`Test Connection。可以在gitlab的pipeline上看到jenkins的构建信息。选择你需要配置的项目 - 设置 - webhooks - 添加。将pipeline文件里面的信息粘贴进去。,因为我们可以创建一个mr来触发。由于jenkins上的。

2023-11-30 18:58:42 1462 1

原创 在CI/CD中使用submodule

该方法并不需要对submodule文件进行调整,但是需要对ci文件进行比较大的调整。另外需要注意的是GITLABUSERNAME和GITLAB_TOKEN都已经保存到变量中。该方法并不需要对submodule文件进行调整,只需要对ci文件进行稍微的调整即可。另外就是里面的修改涉及到了对ssh端口是标准方式和非标准方式的修改。该方法并不需要对ci文件进行大的调整,只需要添加。客户的submodule使用的是ssh协议拉取。但是需要修改submodule文件。修改submodule文件。

2023-11-28 11:05:22 908

原创 那些年,关于CKA&CKS认证的那些事儿?

遥想2020年的年初,疫情封城封村之际,工作之余在B站将尚硅谷的linux中的k8s视频完整系统的学习了一遍,自此像是打通了任督二脉一般,开启了对k8s的探索之旅,一路也是磕磕绊绊的在工作中使用k8s。终于在23年的6月仲夏,在同事的鼓励下,报考了CKA认证,之后又考了CKS,再次将k8s的知识点贯穿了一遍,也算是从最初的朦胧到现在的掌握形成了一个闭环。

2023-11-26 22:42:50 1556 3

原创 如何在gitlab上使用hooks

与许多其他版本控制系统一样,Git 有一种方法可以在发生某些重要操作时,触发自定义脚本,即 Git Hook(Git 钩子)。当我们初始化一个项目之后,.git 目录下有一个 hooks 目录,可以看到上图左侧有很多执行任务,比如 pre-commit,代表在运行这些命令之后或之前,会进行一些校验和检测来执行相应任务。Git Hook 分为两部分:本地和远程,如下图所示:

2023-11-26 20:34:08 1427

原创 基于helm部署并配置StorageClass

此类方法适用于测试环境或者小型的集群环境,因为nfs是网络文件系统,在io性能上并不能有所保证。

2023-11-26 19:04:42 493

原创 基于acme免费申请泛域名证书

参考文档:https://github.com/acmesh-official/acme.sh。

2023-11-26 18:37:52 553

原创 在gitlab中指定自定义 CI/CD 配置文件

指定自定义 CI/CD 配置文件,顾名思义就是在项目中指定文件来代替默认的.gitlab-ci.yml文件的方式来运行流水线。以往我们在使用流水线的时候,都是默认将.gitlab-ci.yml文件存在在项目的跟路径下,但是我们也可以指定备用文件名路径,或者不想在每个项目中来维护这个yml文件,那么通过自定义 CI/CD 配置文件便可以实现。

2023-11-10 09:03:54 3486

原创 在gitlab中的使用kaniko打造流水线

kaniko 是一种从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像的工具。Docker-in-Docker需要特权模式才能运行,这是一个重大的安全问题。Docker-in-Docker通常会降低性能,并且速度可能非常慢。

2023-11-10 08:54:20 1546

原创 python3 中使用 kubernetes模版操纵k8s集群

本文介绍kubernetes模块在k8s集群中的使用,其实就是将对kube-apiserver的http访问封装成python可用的对象。

2022-07-16 17:52:24 3963 1

原创 基于Ingress实现灰度发布(金丝雀发布)和蓝绿发布

前面有科普过灰度发布,那么本章将通过一个案例来给大家展示下实现的过程细节。前置条件:1、k8s集群背景分析:灰度及蓝绿发布是为新版本服务创建一个与老版本服务完全一致的生产环境,在不影老版本服务的前提下,按照一定的规则把部分流量切换到新版本,当新版本试运行一段时间没有问题后,将用户的全量流量从老版本迁移至新版本。其中AB测试就是一种灰度发布方式,一部分用户继续使用老版本的服务,将一部分用户的流量切换到新版本,如果新版本运行稳定,则逐步将所有用户迁移到新版本。应用场景基于客户端请求的流量切

2022-07-16 11:56:01 2255

原创 flux在k8s集群中的应用

Flux是一个在git中可以自动明确集群状态和匹配配置的工具。它可以用在操作Kubernetes集群中来触发deployment,这就意味着你不再需要单独的CD工具。在此基础上(以及可配置的策略)它可以监控仓库、检测镜像、触发deployment以及更新所需的运行配置。好处就是你不需要授予集群的CI访问权,每一个更改都是原子的和事务性的,git已经有了审计日志。每个事务要么失败,要么成功。你完全以代码为中心,不需要新的基础设施。...

2022-07-16 11:37:31 1267

原创 基于 keda事件驱动在Kubernete 集群上的弹性自动缩放应用

由于我们在文件中定义的promethues收集的服务的自定义指定是DubboRequestLatency,因此我们可以在根据PromQL语句在promethues的界面查询下当前的值是多少。kill掉模拟的cpu脚本,将cpu的使用率降下来,等待一会,结合阿里云界面,会发现pod进入缩容状态。由于达到设定的开始时间后,但是我们有配置服务的伸缩窗口,所以在等待60秒后,开始扩容。同样在到达设定的结束时间后,在等待伸缩窗口期(180秒)后,服务进行缩容,由于。,所以会恢复到最原始的副本数。...

2022-07-16 11:07:17 854

原创 科普:一文细说蓝绿发布、AB测试、金丝雀发布(灰度发布)

随着微服务架构的普及,线上服务越来越多,随之而来的就是产品迭代的频率越来越快,部署越来越频繁;而同时要求服务上线速度也要快速提升。然后鱼与熊掌不可兼得,有上线、有部署,就有风险,有风险,就对业务有影响,因为也就反向引导了更优的部署方案:诸如蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。1、蓝绿发布概要说明蓝绿发布需要对服务的新版本进行冗余部署,一般新版本的机器规格和数量与旧版本保持一致,相当于该服务有两套完全相同的部署环境,只不过此时只有旧版本在对外提供服务,新版本作为热备。当服

2022-04-27 22:03:19 2077

原创 基于k8s的HAP进行容器的水平伸缩

文章目录前置条件:操作:step1:创建nginx的deploymentstep2:创建hpastep3:模拟超载访问前置条件:1、阿里云ack集群操作:以nginx服务为例step1:创建nginx的deploymentcat nginx-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nginx labels: app: nginxspec: replicas: 1 selec

2022-04-24 22:53:50 343

原创 基于阿里云组件指标的容器水平伸缩

文章目录前置条件:操作:step1:创建nginx的deploymentstep2:创建hpastep3:查看ingress的相关指标step4:创建ingress路由step5:压测访问分析:前置条件:1、阿里云ack集群2、已配置安装好ingress的日志参考链接:https://help.aliyun.com/document_detail/151555.html操作:以nginx服务为例step1:创建nginx的deploymentcat nginx-deployment.yam

2022-04-24 22:47:52 3126

原创 基于k8s的HAP进行容器的水平伸缩

文章目录前置条件:操作:step1:创建nginx的deploymentstep2:创建hpastep3:模拟超载访问前置条件:1、阿里云ack集群操作:以nginx服务为例step1:创建nginx的deploymentcat nginx-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nginx labels: app: nginxspec: replicas: 1 selec

2022-04-24 22:35:18 2466

原创 docker多阶段构建及案例

背景说明:多阶段构建指在Dockerfile中使用多个FROM语句,每个FROM指令都可以使用不同的基础镜像,并且是一个独立的子构建阶段。使用多阶段构建打包Java应用具有构建安全、构建速度快、镜像文件体积小等优点。前置条件:1、提前安装好docker2、准备好代码多阶段构建优势针对Java这类的编译型语言,使用Dockerfile多阶段构建,具有以下优势:保证构建镜像的安全性当您使用Dockerfile多阶段构建镜像时,需要在第一阶段选择合适的编译时基础镜像,进行代码拷贝、项目依赖下载、.

2022-04-24 22:21:33 3838

原创 GitLab CI/CD 之 pipelibe-for-MultiProject-传参案例

本篇目录链接项目信息:项目说明:CI file:oneci ci file:helmfile ci file:效果展示:首先我们先将构建和部署分离开来,然后通过oneci中一次完成多个项目的biuld操作,待所有项目build的结束后,在oneci的最后一个阶段,去触发部署操作。后期可以通过判断条件的方式,设置卡点,从而做从流程审批到发布生产。项目信息:项目说明:流程思路:CI file:oneci ci file:image: docker:19.03.13variables:

2022-01-20 17:46:32 854

原创 GitLab CI/CD 之 pipelibe-for-MultiProject案例

本篇目录链接Multi-project pipelines介绍项目信息项目说明:ci file:oneci file:apache ci file:(其他项目类同)效果展示:Multi-project pipelines介绍Multi-project pipeline是指多个项目设置GitLab CI / CD,以便一个项目中的管道可以触发另一个项目中的管道;GitLab CI / CD 是一个功能强大的持续集成工具,不仅适用于每个项目,而且适用于具有多项目管道的项目;多项目管道对于需要跨项目相互

2022-01-20 17:37:23 1117

原创 GitLab CI/CD 之 pipelinetrigger--通过trigger实现envsubst透传参数案例

本篇目录链接项目说明:流程思路:http项目:http-ci file:nginx项目:nginx-ci file:结果展示:项目说明:基于通过http项目去触发nginx项目流程思路:在http ci中定义VERSION变量,然后通过pipelinetriggeer传参,在以变量的方式传入到nginx项目中;然后通过envsubst将文件中的变量通过传进来的参数替换掉,然后实现构建操作。http项目:http-ci file:image: docker:19.03.13variabl

2022-01-20 17:28:01 2820

原创 GitLab CI/CD 之 pipeline通过envsubst透传参数案例

本篇目录链接项目信息:项目说明:nginx项目效果展示:envsubst介绍envsubst简单应用项目信息:项目说明:通过在ci文件中的定义变量,然后将值传入到index.htm中生成index.html文件,从而满足dockerfile中的文件格式,进而完成打包操作。ci中用到的192.168.137.14:5000/centos:env这个镜像里面包含了envsubst,要不然会提示envsubst 找不到。nginx项目cat index.htmnginx:${versio

2022-01-20 17:24:08 2021

原创 GitLab CI/CD 之 pipeline--trigger传参案例

本篇目录链接项目说明:流程思路:说明:CI filehttp-ci file:nginx-ci file:结果展示:项目说明:基于通过http项目去触发nginx项目。流程思路:在http ci中定义VERSION变量,然后通过pipelinetriggeer传参,在以变量的方式传入到nginx项目中;通过修改nginx ci中的镜像tag版本,定义为version变量说明:此处我是将预定义变量、ci文件中定义变量、传参结合一起做的。其中variables下的REF_NAME、VERSIO

2022-01-20 17:15:21 4071

原创 GitLab CI/CD 之pipeline--ci文件中定义变量案例

本篇目录链接项目说明:CI filehttp-ci file:结果展示:项目说明:基于上篇的基础上,将http项目UI界面定义的变量删除即可。CI filehttp-ci file:在ci 文件中定义变量:line2-4image: docker:19.03.13variables: CITOKEN: 8c25146d34635c60c1b5d6ce301908 REF_NAME: mainstages: - Test - Build - Deploytest:

2022-01-20 17:08:41 531

原创 GitLab CI/CD environment variables

本篇目录链接GitLab CI/CD variables 说明:使用变量的方式1、预定义变量(Predefined CI/CD variables)2、自定义变量(Custom CI/CD variables)3、.gitlab-ci.yml 中定义变量实现方式1、项目中定义变量2、通过api1) 前置条件:i 查看项目idii 创建项目级令牌iii 查看此项目是否有变量2) 列出项目变量的3) 创建变量4) 查看变量key的值5) 更新变量6) 删除变量3、.gitlab-ci.yml 中定义变量出自:

2022-01-20 16:52:50 2819

原创 GitLab CI/CD 之 pipeline--项目UI上定义变量案例

本篇目录链接项目信息:流程思路:前置条件:CI filehttp-ci file:nginx-ci file:结果展示:http 流水线nginx流水线项目信息:流程思路:通过在nginx在nginx项目中创建pipeline-triggger,然后在http中触发;同时CITOKEN已经作为变量提前在项目中定义ok了。在项目中预定义变量前置条件:nginx项目中创建好流水线触发器TOKEN:8c25146d34635c60c1b5d6ce301908REF_NAME:分支或者标签名称

2022-01-20 14:30:40 1989

原创 Argo CD 项目发布(三)

本篇目录链接方式一:基于yaml文件部署step1:添加项目仓库地址step2:创建项目(基于环境区分,所以需要在创建的时候添加项目地址,否则将没有权限访问)step3:发布项目方式二:基于helm部署step1:添加项目仓库地址step2:创建项目(基于环境区分,所以需要在创建的时候添加项目地址,否则将没有权限访问)step3:发布项目方式一:基于yaml文件部署step1:添加项目仓库地址控制台主页—setting—Repositories—选择gitstep2:创建项目(基于环境区分,所

2022-01-19 23:27:30 1085

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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