自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 三、Jenkinsfile 的使用

上面讲过流水线支持两种语法,即声明式和脚本式,这两种语法都支持构建持续交付流水线。并且都可以用来在 Web UI 或 Jenkinsfile 中定义流水线,不过通常将 Jenkinsfile 放置于代码仓库中(当然也可以放在单独的代码仓库中进行管理)。

2025-04-02 10:23:24 746

原创 二、声明式 Pipeline 语法

选择型参数,一般用于给定几个可选的值,然后选择其中一个进行赋值,例如:parameters { choice(name: ‘CHOICES’, choices: [‘one’, ‘two’, ‘three’], description: ‘’) },表示定义一个名为 CHOICES 的变量,可选的值为 one、two、three;默认情况下,如果定义了某个 stage 的 agent,在进入该 stage 的 agent 后,该 stage 的 when条件才会被评估,但是可以通过一些选项更改此选项。

2025-04-02 10:18:30 924

原创 一、DevOps和流水线

Jenkins流水线(Pipeline)

2025-04-02 09:48:20 1054

原创 十二、Prometheus 告警实战

0.22版本以后,增加了AlertmanagerConfig:https://github.com/prometheus-operator/prometheus-operator/blob/master/example/user-guides/alerting/alertmanager-config-example.yamlhttps://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#a

2025-04-01 13:48:46 981

原创 十一、Alertmanager告警入门

是用go template写的让alertmanager的pod能够读到这个模板......alertmanager.yaml: |- # 这个是配置文件"global":|-是一种yaml语法,意思是多行,下面的一堆都是属于这个文件的......==========异常告警==========告警类型: {{ $alert.Labels.alertname }}告警级别: {{ $alert.Labels.severity }}

2025-04-01 10:28:41 704

原创 十、Prometheus 语法PromQL入门

PromQL Web UI 的 Graph 选项卡提供了简单的用于查询数据的入口,对于 PromQL 的编写和校验都可以在此位置,如图所示:输入 up,然后点击 Execute,就能查到监控正常的 Target:注意此时是排除一些项注意:不能有空格匹配等于如果想要查看主机监控的指标有哪些,可以输入 node,会提示所有主机监控的指标:假 如 想 要 查 询 Kubernetes 集 群 中 每 个 宿 主 机 的 磁 盘 总 量 , 可 以 使 用查询指定分区大小显示的大小为可以转单位,用。

2025-03-25 22:14:15 760

原创 九、Prometheus 监控windows(外部)主机

是 Prometheus 官方推荐的 Windows 监控工具,它可以采集指标。主要用于 Linux,Windows 也有非官方版本,但通常使用更合适。如果只想监控或,可以使用进行探测。

2025-03-16 22:54:11 697

原创 八、Prometheus 静态配置(Static Configuration)

Prometheus 主要通过 scrape_configs配置采集目标(targets),可以使用。

2025-03-16 16:40:39 792

原创 七、Prometheus 黑盒监控-白盒监控

黑盒监控:监控关注的是现象,也就是正在发生的告警,比如某个网站突然慢了,或者是打不开了。此类告警是站在用户的角度看到的东西,比较关注现象,表示正在发生的问题,这类监控称为黑盒监控。白盒监控:程序内部的一些指标,这类监控专注的点是原因,也就是一般为出现问题的根本,此类监控称为白盒监控,主要关注的是原因。在 Prometheus 监控体系中,黑盒监控(Blackbox Monitoring) 和 白盒监控(Whitebox Monitoring) 是两种不同的监控方式,适用于不同的场景。下面详细介绍它们的概念、

2025-03-16 12:08:32 854

原创 六、ServiceMonitor排查步骤思路

完整排查步骤✅1. 确认是否创建成功✅2. 确认的 labels 是否与 Prometheus 匹配✅3. 确认 Prometheus 是否发现目标✅4. 确认选择的Service是否正确✅5. 确认Service是否正确暴露metrics✅6. 确认的端口和scheme设置是否正确✅7. 触发 Prometheus 重新发现目标✅8. 检查 Prometheus 日志按照以上步骤逐步排查,基本可以解决Prometheus 通过监控应用时找不到目标的问题 🚀。

2025-03-14 18:14:54 906

原创 五、非云原生监控mysql-Exporter

将使用 MySQL 作为一个测试用例,演示如何使用 Exporter 监控非云原生应用。

2025-03-11 18:12:34 1118

原创 四、云原生应用监控-Etcd

云原生监控-etcd

2025-03-07 17:55:12 720

原创 三、Prometheus监控流程

是 Prometheus Operator 提供的一种自定义资源(CRD),用于在 Kubernetes 集群中自动发现和监控Service资源。它简化了 Prometheus 监控 Kubernetes 应用的流程,使其无需手动配置。kind: ServiceMonitor # 资源是ServiceMonitor metadata: .. .. .. name: node-exporter。

2025-03-07 14:02:53 593

原创 二、Prometheus 安装

适用于,官方提供 Linux / macOS / Windows 的二进制包。✅ 适用于单机环境✅ 适用于简单测试适用于,使用官方 Prometheus 镜像快速启动。✅ 适用于✅ 适用于可同时部署 Prometheus、Alertmanager、Grafana 等组件。✅ 适用于✅ 适用于在 Kubernetes 集群中,推荐使用进行管理。✅ 适用于✅ 适用于适用于,可通过 Ansible 自动安装 Prometheus。✅ 适用于✅ 适用于如果你在环境,推荐🚀如果是,可以用方式。

2025-03-04 15:34:34 988

原创 一、Prometheus架构

Prometheus 是一个开源的监控系统和时序数据库(TSDB),最初由 SoundCloud 开发,现在是 CNCF(Cloud Native Computing Foundation) 的托管项目之一,广泛用于云原生环境下的指标监控和告警。✅。

2025-03-04 10:02:42 774

原创 三十二、K8S容器日志收集-EFK

首先需要部署 Kafka 和 Logstash 至 Kubernetes 集群,如果企业内已经有比较成熟的技术栈,NOTES:NOTES:配置解析metadata:data:input {kafka {output {} else{需要注意文件中的一些配置:➢ input:数据来源,本次示例配置的是 Kakfa;

2025-03-03 14:27:55 1015 1

原创 三十一、Trouble Shooting指南

Kubernetes 故障排查是一个综合性很强的任务,涉及集群、节点、网络、存储、调度、应用等多个层面。通过上述的方法和命令,您可以系统地排查和解决问题。定期的监控、日志记录、自动… End …

2025-02-28 16:04:11 683

原创 三十、Helm和Operator

Helm使用的包格式被称为Chart。Chart就是一个描述所有Kubernetes资源的文件集合。一个Chart用于部署一个完整的应用,例如数据库、缓存、Web服务等。本节对Chart的目录结构、主要文件和关键配置信息进行说明。

2025-02-28 11:27:04 728

原创 二十九、Kubernetes运维管理

简单控制:使用和快速控制节点的调度状态。精细控制:通过taints和精确控制哪些 Pod 可以调度到哪些节点。节点维护:使用进行节点维护时优雅地清空节点上的 Pod。资源隔离:通过资源配额来限制资源使用,间接影响节点的调度行为。高级调度:通过自定义调度器和实现复杂的调度需求。

2025-02-13 16:39:03 966

原创 HTTP4种方法(GET、POST、 PUT和DELETE)

1. GET(读取数据)作用从服务器获取数据参数位置:通过 URL 的查询字符串传递参数。请求体:无请求体。幂等性:幂等,多次请求结果相同。适用场景:加载网页内容、获取用户信息等。2. POST(创建数据)作用向服务器提交数据,通常用于创建新资源参数位置:数据在请求体中传递。请求体:有请求体(如表单数据或 JSON)。幂等性:非幂等,每次请求可能创建新的资源。适用场景:提交表单、新增用户、上传文件等。3. PUT(创建或更新数据)作用创建或更新指定的资源参数位置:数据在请求体中传递。请求体。

2025-02-08 16:49:13 1567

原创 二十八、Qos服务质量

Guaranteed(保证)功能:为关键任务负载提供最严格的服务质量保障。区别:所有容器都需要设置相同的 CPU 和内存的请求和限制(即注意事项:这种 QoS 类别的 Pod 在资源紧张时最不容易被驱逐。Burstable(突发)功能:适用于需要灵活资源的应用,可以在必要时使用更多的资源。区别:至少有一个容器的requests小于limits或者不是所有的容器都设置了资源限制。注意事项:在资源竞争时,Burstable Pod 的优先级次于 Guaranteed,但高于 BestEffort。

2025-01-21 23:29:54 833

原创 二十七、资源限制-LimitRange

在调度的时候 requests 比较重要,在运行时 limits 比较重要。

2025-01-21 23:15:18 1028

原创 二十六、资源限制-ResourceQuota

对命名空间的资源限制多个项目,时间长了,会有大量无用的资源pod等。限制资源使用,超过设置的资源,则不能创建。

2025-01-20 23:43:48 379

原创 二十五、认证管理-RBAC

Kubernetes集群有两种用户账号:第1种是集群内部的Service Account;第2种是外部的用户账号,可能是某个运维人员或外部应用的账号。Kubernetes并不支持常规的个人账号,但拥有被Kubernetes集群的CA证书签名的有效证书,个人用户就可被授权访问Kubernetes集群了。也是一种账号,但它并不是给Kubernetes集群的用户(系统管理员、运维人员、租户用户等)用的,而是给运行在Pod里的进程用的,它为Pod里的进程提供了必要的身份证明。

2025-01-20 22:33:04 872

原创 二十四、NetworkPolicy

但是需要注意的是该网络策略的ingressfrom是以namespaceSelector的标签进行匹配的,并非podSelector,或者是两者的结合。因为在生产环境中,同一个Namespace下可能会有很多不同类型、不同标签的Pod,并且它们可能并不具有一个相同的标签,所以如果通过podSelector进行选择,可能会比较麻烦,因为Pod一旦创建,对其标签的修改是很不方便的(apps/v1一旦创建就不可修改)。

2025-01-19 16:07:07 356

原创 二十三、Rook、StorageClass和CSI

动态存储:StorageClass:存储类,由K8s管理员创建,用于动态PV的管理,可以链接至不同的后端存储,比如Ceph、Glusterfs等。之后对存储的请求可以指向StorageClass,然后StorageClass会自动的创建、删除PV。实现方式:https://kubernetes.io/docs/concepts/storage/storage-classes示例:2、CSI在 Kubernetes 中,PV(Persistent Volume)、PVC(Persistent Vol

2024-12-26 00:08:51 888

原创 二十二、PV和PVC

PersistentVolume(PV)和Persistent Volume Claim(PVC)PV(持久卷)是对存储资源的抽象,将存储定义为一种容器应用可以使用的资源。PV由管理员创建和配置,它与存储提供商的具体实现直接相关,例如GlusterFS、iSCSI、RBD或GCE或AWS公有云提供的共享存储,通过插件式的机制进行管理,供应用访问和使用。除了EmptyDir类型的存储卷,PV的生命周期独立于使用它的Pod。PVC则是用户对存储资源的一个申请。

2024-12-24 10:57:17 1470

原创 二十一、Ingress 进阶实践

如果将有路径重写和没有路径重写的 Ingress 配置在一起,可能导致 NGINX Ingress 错误地将重写规则应用到所有请求路径,从而引发不可预期的行为。因此,最好分开配置或使用其他隔离机制来避免冲突。

2024-12-20 23:12:00 903

原创 二十、服务发布Ingress

类型匹配方式适用场景优缺点Exact完全匹配精确控制特定路径的路由控制严格,灵活性较差。Prefix匹配以指定路径为前缀的请求需要路由整个路径层级或子路径的请求常用,灵活,配置简单。Controller 决定匹配方式灵活的自定义场景或需要兼容旧版的场景依赖 Controller,兼容性差。通常情况下,Prefix是最常用的配置,可以满足绝大多数微服务和静态资源路由的需求。是定义 Ingress Controller 的资源,标识 Controller 的类型和行为。是Ingress。

2024-12-19 16:57:21 975

原创 十九、服务发布service

每个Pod都会获取到它自己的IP地址,但是这些IP地址不总是稳定和可依赖的,这样就会导致一个问题在Kubernetes集群中,如果一组Pod(比如后端的Pod)为其他Pod(比如前端的Pod)提供服务,那么如果它们之间使用Pod的IP地址进行通信,在Pod重建后,将无法再进行连接。于是Kubernetes引用了Service这样一种抽象概念:逻辑上的一组Pod,即一种可以访问Pod的策略。这一组Pod能够被Service通过标签选择器访问到,之后就可以使用Service进行通信。

2024-12-15 19:19:55 1000

原创 rsyslog、Webhook 和 SNMP

rsyslogWebhook和SNMP是三种不同的技术和协议,通常用于、和等场景中。它们的作用和使用场景有所不同。下面我将详细解释它们的功能、工作原理、适用场景和区别。

2024-12-15 00:25:59 885

原创 十八、Label 和 Selector

Label 是键值对,用来标识 Kubernetes 资源(如 Pod、Node、Service 等)的属性。它们并不直接影响资源的行为,但可以帮助用户快速组织、查询和操作这些资源。标签可以用于选择、过滤和分组。

2024-12-15 00:03:19 904

原创 十七、临时容器kubectl debug

K8S,黑客从pod入侵,通过pod渗透到K8S集群,被入侵会被当做矿机,被植入sidecar。注意:注入的临时容器删不掉,除非把原有pod删掉,或者重启会清空。一般下次发版,也会删除掉。生产pod不建议开启bash和sh,以及其他危险工具wget等。所以生产中尽量不用root账户,并且pod没有bash和sh。传统架构,黑客进来,提权后,会直接操作应用,危险。所以可以给pod临时注入容器,运行相关检查工具。以下命令只是1.25以下的版本需要开启。

2024-12-13 00:12:06 763

原创 十六、Init Container(初始化容器)

在很多应用场景中,应用在启动之前都需要进行如下初始化操作。

2024-12-12 00:09:38 771

原创 十五、K8s计划任务Job&CronJob

Job 控制器用于管理 Pod 对象运行一次性任务,比方说我们对数据库备份,可以直接在 k8s 上启动一个 mysqldump 备份程序,也可以启动一个 pod,这个 pod 专门用来备份用的,备份结束 pod 就可以终止了,不需要重启,而是将 Pod 对象置于"Completed"(完成)状态,若容器中的进程因错误而终止,则需要按照重启策略配置确定是否重启,对于 Job 这个类型的控制器来说,需不需要重建 pod 就看任务是否完成,完成就不需要重建,没有完成就需要重建 pod。:重启策略,和Pod一致。

2024-12-11 23:30:20 1405 1

原创 十四、Pod的升级和回滚

当集群中的某个服务需要升级时,我们需要停止目前与该服务相关的所有Pod,然后下载新版本镜像并创建新的Pod。如果集群规模比较大,则这个工作变成了一个挑战,而且先全部停止然后逐步升级的方式会导致较长时间的服务不可用。Kubernetes提供了滚动升级功能来解决上述问题。

2024-12-10 23:15:29 1149 3

原创 十三、Pod Priority Preemption:Pod优先级-PriorityClass

区分不同重要性的工作负载核心业务(如生产环境的应用)通常需要更高的优先级。非核心任务(如批处理、测试任务)可以分配较低优先级。确保关键服务的可用性在资源紧张或发生抢占时,确保关键服务优先获得资源。优化资源使用合理规划不同优先级的应用,避免资源被不重要的任务占用。不同等级的通常需要自定义创建,根据业务需求划分高、中、低优先级。使用为 Pod 分配合适的优先级,确保关键业务的资源调度。最后要指出一点:使用优先级抢占的调度策略可能会导致某些Pod永远无法被成功调度。

2024-12-07 22:25:47 950

原创 十二、Pod的扩缩容-手动/自动-HPA

水平Pod自动缩放器HPA-Horizontal Pod AutoscalerKubernetes从1.1版本开始,新增了名为。

2024-11-29 21:20:50 1056

原创 十一、Kubernetes调度-亲和力与反亲和力-Affinity-AntiAffinity

需要注意的是,以上拓扑域是由Kubernetes自己维护的,在Node节点初始化时,controller-manager会为Node打上许多标签,比如kubernetes.io/hostname这个标签的值就会被设置为Node节点的hostname。的意思是:如果一个Pod所在的节点在Pod运行期间标签发生了变更,不再符合该Pod的节点亲和性需求,则系统将忽略Node上Label的变化,该Pod能继续在该节点上运行。:硬亲和力,即支持必须部要在指定的节点上,也支持必须不部署在指定的节点上。

2024-11-28 22:56:39 1283

原创 十、Kubernetes调度-污点和容忍Taint&Toleration

NodeAffinity节点亲和性,是在Pod上定义的一种属性,使得Pod能够被调度到某些Node上运行(优先选择或强制要求)。Taint则正好相反,它让Node拒绝Pod的运行。简单地说,被标记为Taint的节点就是存在问题的节点,比如磁盘要满、资源不足、存在安全隐患要进行升级维护,希望新的Pod不会被调度过来,但被标记为Taint的节点并非故障节点,仍是有效的工作节点,所以仍需将某些Pod调度到这些节点上时,可以通过使用Toleration属性来实现。

2024-11-28 03:30:00 729

空空如也

空空如也

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

TA关注的人

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