Jenkins声明式 Pipeline 语法声明式流水线必须包含在一个 Pipeline 块中,比如以下是一个 Pipeline 块的格式:
123pipeline { /* insert Declarative Pipeline here */}
在声明式流水线中有效的基本语句和表达式遵循与 Groovy 的语法同样的规则,但有以下例外:
流水线顶层必须是一个 block,即 pipeline{};
分隔符可以不需要分号,但是每条语句都必须在自己的行上;
块只能由 Sections、Directives、Steps 或 assignment statements 组成;
属性引用语句被当做是无参数的方法调用,比如 input 会被当做 input()。
1.Sections常用指令声明式流水线中的 Sections 不是一个关键字或指令,而是包含一个或多个 Agent、Stages、post、Directives 和 Steps 的代码区域块。
1.1Agent语法Agent 表示整个流水线或特定阶段中的步骤和命令执行的位置,该部分必须在 pipel ...
DevOps介绍1.DevOps是什么DevOps = Dev(开发) + Ops(运维)的组合。
DevOps 就是让写代码的人和管服务器的人像一个团队一样紧密合作,用自动化工具把软件从“写好”到“上线运行”整个过程变得又快又稳。
为什么重要?(好处超好记)
更快:新功能几天甚至几小时就能上线(而不是几个月)
更稳:出问题能立刻发现和修复,不用半夜被叫醒
更省心:大家互相理解,不再互相甩锅,团队开心
核心口诀(方便记忆) “自动化、协作、持续交付、快速反馈” —— 这四句话基本概括了DevOps的精髓。
记住这一个比喻就够了:DevOps 就是把开发和运维从“隔墙扔盘子”变成“一起开餐厅”。
Dev0ps核心目标:加速交付:快速迭代,频繁发布新功能提高质量:通过自动化任务减少错误增强协作:开发、运维、测试等角色紧密配合全自动化:减少手动操作,提升效率
2.DevOps相关工具链(技术层面)
阶段
工具示例
代码管理
Git、GitLab、Gitee、Github
代码扫描
Sonarqube
持续集成
Jenkins、Tekton、Gitlab CI
...
DevOps平台搭建部署流程1.DevOps整体流程Kubernetes 中进行微服务的 CI/CD 自动化流水线,一般会有如下步骤:
在 GitLab 中创建对应的项目(一个微服务建议对应一个gitlab项目仓库,项目名称建议和微服务名称保持一致);
配置 Jenkins 集成 Kubernetes 集群,后期 Jenkins 的 Slave 将为在 Kubernetes 中动态创建的 Slave;
Jenkins 创建对应的任务(Job),一个微服务建议创建一个Jenkins流水线工程,集成该项目的 Git 地址和Kubernetes 集群;
开发者将代码提交到GitLab;
如有配置钩子,推送(Push)代码会自动触发 Jenkins 构建,如没有配置钩子,需要手动构建;
Jenkins 控制 Kubernetes(使用的是 Kubernetes 插件)创建 Jenkins Slave(Pod 形式);
Jenkins Slave 根据流水线(Pipeline)定义的步骤执行构建;
通过 Dockerfile 生成镜像;
将镜像推送(Push)到私有仓库 Harbor ...
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
EB级分布式高可用存储平台落地1.分布式存储介绍1.1单节点或NFS存储存在的问题常见的存储设计如下:
1.2分布式存储的主要特性与优势支持近乎无限的扩容支持容错能力和数据冗余支持多机房多区域部署支持负载均衡和并行处理支持权限管理和多用户支持多种文件存储类型支持普通硬件设计
1.3分布式存储平台对比
特性/项目
Ceph
CubeFS
设计目标
统一存储解决方案,支持对象、块和文件存储
专注于文件存储和对象存储,适用云原生和大数据场景
存储类型
对象存储、块存 ...
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
配置管理-ConfigaMap和Secret
认识ConfigMap和Secret
创建ConfigMap和Secret的方式
以配置文件形式挂载ConfigMap和Secret
以环境变量形式挂载ConfigMap和Secret
更改挂载文件的名称和权
限解决挂载覆盖目录的问题
Secret管理域名证书
Secret管理镜像仓库密钥
Secret和ConfigMap配置只读
Secret和ConfigMap备份还原
Secret和ConfigMap使用注意事项 ...
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
一、什么是Ingress在 Kubernetes(K8s)环境中,Ingress 是一种 API 对象,用于管理集群内部服务(通常是 HTTP 服务)的外部访问,它提供了一种灵活的方式来定义和管理基于 HTTP/HTTPS 的路由规则,允许外部流量通过配置的规则访问 Kubernetes 集群中的服务。为集群中的服务提供了一个统一的入口,可以提供负载均衡、SSL终止和基于名称(域名)的虚拟主机,应用的灰度发布等功能。
Ingress 本身不直接处理流量,而是依赖于 In ...
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
第十七章、云原生监控Prometheus入门17.1什么是PrometheusPrometheus 是一个开源的系统监控和告警工具包。它最初是由 SoundCloud 开发的,目前已经成为云原生计算基金会(CNCF)的第二个毕业项目(仅次于 Kubernetes)。
主要特点包括:
多维度数据模型
时间序列数据由指标名称和键值对标签组成
支持灵活的查询语言 PromQL
数据收集
通过 HTTP 协议采用 pull 模型拉取数据
支持 push 网关来接收短期任务的数 ...
Docker
未读
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
从dockerhub拉取镜像该教程解决的是大陆用户无法从dockerhub拉取镜像的问题
使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
方案一:利用Github和阿里云拉取1. 准备工作:
登录阿里云,找到容器镜像服务,创建一个个人版实例。(第一次使用的话,会让设置访问密码。记住,后面会用)
找到仓库管理-命名空间,新建一个命名空间且设置为公开
不要创建镜像仓库,回到访问凭证
123sudo docke ...
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
k8s存储管理-数据持久化及动态存储1.Volumes介绍官方介绍:https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/
Volumes是Kubernetes中一个对存储资源的抽象概念,属于pod级别的一个配置字段参数,本质上是一个可以被Pod中容器访问的目录。它解决了容器中文件系统的临时性问题,使数据可以在容器重启后依然保持。
Volumes在Pod中绑定多个,多种的数据类型,比如NFS、NAS、CEPH等,这些绑定的 ...
pod控制器
未读
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
1.kubernetes调度基础1.1replication controller和replicaset(了解即可)Replication Controller(复制控制器,RC)和 ReplicaSet(复制集,RS)是两种简单部署 Pod的方式。因为在生产环境中,主要使用更高级的 Deployment 等方式进行 Pod 的管理和部署,所以只需要简单了解即可。
1.1.1Replication ControllerReplication Controller(简称 RC)可确保 P ...












