自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【云原生】认识KEDA事件驱动

Kubernetes单Master节点Etcd备份恢复实践 本文记录了在OpenEuler22.03系统上对Kubernetes单Master节点的Etcd进行备份和恢复的全过程。主要内容包括: 环境准备:3节点Kubernetes集群配置 安装etcdctl备份工具(v3.5.7) 创建测试Pod用于验证恢复效果 执行Etcd快照备份并验证备份文件 模拟故障场景(删除测试Pod) 详细恢复步骤:停止服务、恢复数据、重启组件 通过实际操作演示了Etcd数据的完整备份和恢复流程,确保在系统故障时能够快速恢复K

2026-03-02 12:08:44 824

原创 【云原生】Gateway API高级功能

【代码】【云原生】Gateway API高级功能。

2026-02-08 11:33:24 791

原创 【云原生】Gateway API路由、重定向、修饰符等关键操作

本文介绍了使用Istio作为Gateway API的实现方案,重点讲解了HTTP路由配置方法。主要内容包括: 部署Istio服务网格作为GatewayClass控制器,替代原有Envoy方案以支持更丰富的功能 创建Gateway资源定义入口网关,配置HTTP监听器 通过HTTPRoute资源实现基于主机名、请求头和路径的流量路由 示例演示了将不同域名和路径的请求路由到对应后端服务的配置方法 文章提供了完整的YAML配置示例,包括Deployment、Service、Gateway和HTTPRoute资源定义

2026-02-03 17:42:33 1246

原创 【云原生】初识Gateway API

本文介绍了在Kubernetes集群中部署Gateway API的关键步骤。首先部署MetalLB组件解决LoadBalancer类型Service的IP分配问题,配置IP地址池并验证状态。随后安装网关控制器作为连接配置声明与实际流量转发的桥梁,并部署Gateway API标准组件。最后通过一个简单示例,展示了如何部署Deployment、Service以及Gateway资源,实现流量路由功能。整个过程涵盖了从底层网络支持到上层API配置的全流程,为Kubernetes集群提供了完整的流量网关解决方案。

2026-02-03 17:40:50 1142

原创 【云原生】Gateway API介绍

摘要: Gateway API是Kubernetes官方推出的下一代L4/L7路由管理方案,支持南北向(Ingress)和东西向(Service Mesh)流量路由。其核心特点包括:1)面向角色设计,区分基础设施提供者、运维者和应用开发者;2)通过Gateway/GatewayClass资源实现负载均衡器共享;3)支持协议特定路由(HTTP/gRPC等)和多样化后端;4)提供丰富的原生路由功能(头匹配、流量权重等)。相比Ingress,Gateway API具有更强的表现力和扩展性,同时保持可移植性,支持多

2026-02-03 17:38:45 987

原创 【ETCD】ETCD——confd配置管理

本文介绍了如何使用confd+etcd实现Nginx配置的动态管理。主要内容包括:confd作为轻量级配置管理工具的工作原理和安装方法;通过创建Nginx模板文件和资源配置文件,实现基于etcd键值变化的配置自动更新;演示了如何通过修改etcd中的/nginx/root_dir键值来动态切换Nginx服务的版本(V1/V2)。该方案解决了多服务环境下配置文件管理复杂的问题,实现了配置的集中化管理、版本回溯和自动加载功能。实验验证表明,当etcd中的配置变更时,confd能够实时检测并更新Nginx配置,确保

2025-11-07 12:45:11 1089

原创 【ETCD】ETCD常用命令

ETCD常用命令摘要 本文介绍了ETCD集群管理的常用命令和基本配置方法。主要包括: 环境准备:配置3节点openEuler系统集群(IP:192.168.93.101-103),关闭防火墙和SELinux,设置主机名等基础环境配置。 命令基础:ETCD提供了命令行客户端工具etcdctl,可通过etcdctl command --help获取命令帮助。 常用命令: 查看版本:etcdctl version 查看节点信息:etcdctl member list -w table 检查集群健康状态:etcdc

2025-11-06 09:31:35 1219

原创 【ETCD】ETCD集群部署(TLS)

本文介绍了在openEuler系统上部署ETCD高可用集群的详细过程。使用3个节点(192.168.93.101-103)构建集群,包含基础环境配置、注意事项说明、systemd服务配置等关键步骤。重点阐述了每个节点的配置文件差异和启动方法,最后通过etcdctl命令验证集群状态正常。该部署方案采用raft协议保障数据一致性,通过奇数节点实现集群容错能力。

2025-11-06 09:30:31 983

原创 【ETCD】ETCD单节点二进制部署(TLS)

ETCD单节点二进制部署(TLS)摘要 本文详细介绍了在openEuler系统上部署单节点ETCD服务的过程,包含TLS加密配置。主要内容包括: 基础环境配置:关闭防火墙、SELinux,设置主机名 二进制安装:下载ETCD 3.4.23版本,配置环境变量 服务管理:创建systemd服务单元和配置文件,启动ETCD服务 验证部署:检查集群状态 TLS加密配置:使用cfssl工具生成证书,配置安全通信 部署过程涵盖从基础环境准备到安全增强的完整流程,适用于开发测试环境。

2025-11-04 17:17:44 1110

原创 【ETCD】ETCD基础介绍

本文介绍了分布式键值存储系统ETCD的基础知识。ETCD是一个基于Go语言实现的高可用分布式数据库,具有简单、安全、快速和可靠等特点,支持服务发现、发布订阅、负载均衡等应用场景。文章从架构原理、核心概念和特性等方面解析了ETCD的工作原理,包括Raft算法实现数据一致性、Leader选举机制以及读写流程。相比Zookeeper,ETCD在易用性、性能和安全性等方面具有优势,更适合构建现代分布式系统。

2025-11-04 17:16:38 1076

原创 【GitOps】Argo Rollouts 金丝雀发布

Argo Rollouts是Kubernetes的高级部署控制器,支持蓝绿、金丝雀等渐进式交付策略。它通过自定义Rollout资源替代原生Deployment,提供流量拆分、自动回滚和指标分析等功能。核心组件包括Rollout控制器、Analysis资源用于指标验证,以及集成多种服务网格和Ingress控制器。安装过程简单,只需创建命名空间并应用YAML文件即可部署。Argo Rollouts通过精确控制发布流程,显著降低了生产环境发布风险,是云原生应用持续交付的理想解决方案。

2025-10-22 15:28:42 1394

原创 【GitOps】Argo CD app of apps

Argo CD App of Apps 模式实践 本文介绍了如何使用Argo CD的App of Apps模式实现多应用声明式管理。通过创建根应用(root-application)来管理三个子应用(application1-3),每个子应用分别部署nginx、httpd和tomcat服务。关键步骤包括:1) 定义项目结构,包含根应用配置和子应用清单;2) 配置自动创建Namespace;3) 通过同步操作实现层级部署。最终验证了三个应用成功部署到对应命名空间,并展示了集群中的Pod和Service状态。该

2025-10-22 15:24:28 628

原创 【GitOps】Argo CD高级操作钩子

Argo CD高级操作钩子摘要 本文介绍了Argo CD中的高级操作钩子(Hooks)功能。钩子允许在Kubernetes应用程序部署的不同阶段执行自定义操作,包括: PreSync(同步前) - 执行准备工作 Sync(同步中) - 执行配置修改 PostSync(同步后) - 执行清理或通知 SyncFailed(同步失败) - 执行回滚 文章详细说明了四种钩子删除策略,并提供了完整的YAML配置示例,包括Namespace、Deployment、Service、Ingress资源定义,以及PreSyn

2025-09-04 10:38:57 1217 2

原创 【GitOps】Argo CD自动同步Push请求

本文介绍了如何配置Argo CD实现GitLab代码仓库的自动同步。主要内容包括:1)在GitLab创建存放Kubernetes资源清单的仓库;2)在Argo CD中创建Application关联GitLab仓库;3)设置GitLab Webhook,使其在代码提交时触发Argo CD自动同步;4)通过修改镜像版本测试自动同步功能。整个过程实现了代码变更后自动触发Argo CD部署更新的CI/CD流程。

2025-09-04 10:34:52 577 1

原创 【GitOps】Argo CD部署应用程序

Argo CD部署应用程序摘要 本文详细介绍了使用Argo CD部署应用程序的完整流程。主要内容包括:1) 通过命令行添加Kubernetes集群到Argo CD环境;2) 在UI界面创建新应用,配置Git仓库源和目标集群;3) 手动同步应用部署流程;4) 演示代码变更后通过Argo CD实现应用更新。操作步骤涵盖集群添加、应用创建、同步策略设置和变更管理,展示了Argo CD作为GitOps工具的核心功能。通过实际操作验证了从代码提交到应用部署的完整CI/CD流程。

2025-09-03 15:46:26 1154

原创 【GitOps】初始Argo CD

Argo CD简介与部署摘要 Argo CD是Kubernetes的声明式GitOps持续交付工具,通过Git存储库管理应用程序状态。它支持多种配置管理工具(Kustomize/Helm/Jsonnet等),能自动部署到多个集群,并提供健康监控、差异检测和同步功能。 核心概念包括应用定义、同步状态和健康检查等。部署步骤包括: 下载安装yaml文件并创建argocd命名空间 安装Argo CD CLI工具 通过Ingress暴露服务,需配置SSL透传功能 主要特性包括多租户RBAC、SSO集成、回滚能力、Pr

2025-09-03 15:42:44 1017

原创 【Golang】Go语言Map数据类型

本文介绍了Go语言中的Map数据类型及其基本使用方法。Map是一种无序的键值对数据结构,属于引用类型,需要初始化后才能使用。文章详细讲解了map的定义语法、基本操作(添加、访问、删除元素)、判断键是否存在的方法,以及遍历map的几种方式(包括按指定顺序遍历)。此外还介绍了两种特殊用法:元素为map类型的切片和值为切片类型的map。通过多个代码示例展示了map在实际开发中的应用场景和操作技巧。

2025-07-29 13:01:35 721

原创 【Golang】Go语言指针

本文介绍了Go语言中指针的特性与使用方法。主要包含以下内容:1) Go指针是安全指针,不支持偏移和运算,仅支持取址(&)和取值(*)操作;2) 详细说明了指针地址、指针类型和指针取值的概念与语法;3) 介绍了空指针判断方法;4) 对比讲解了new和make函数的区别:new用于类型内存分配并返回指针,make仅用于slice/map/channel初始化并返回引用类型本身。文章通过代码示例演示了指针传值、空指针处理以及new/make的实际应用场景。

2025-07-29 13:00:45 1242

原创 【Golang】Go语言函数

Go语言函数特点包括:无需声明原型、支持不定变参、多返回值、匿名函数和闭包,函数可作为类型赋值给变量,但不支持嵌套、重载和默认参数。文章介绍了基本函数定义格式、匿名函数、自执行函数(只执行一次)、闭包函数(返回函数的函数)以及延迟调用(defer)机制。通过示例代码展示了各种函数的使用方式,包括参数传递、返回值处理、函数赋值等特性。

2025-07-27 13:46:57 454

原创 【Golang】Go语言运算符

本文介绍了Go语言中常用的运算符类型及其使用方法。主要内容包括: 算术运算符:+、-、*、/、%、++、--,用于基本数学运算 关系运算符:==、!=、>、<、>=、<=,用于比较两个值的关系 逻辑运算符:&&、||、!,用于布尔值的逻辑运算 位运算符:&、|、^、<<、>>,对整数的二进制位进行操作 每种运算符都通过表格形式展示了具体功能,并提供了实际代码示例演示其用法和输出结果。这些运算符是Go语言编程中的基础元素,掌握它们对于编写

2025-07-27 13:45:40 1400

原创 【Golang】Go语言变量

Go语言变量基础摘要 Go语言变量声明使用var关键字,支持多种声明方式:1)指定类型不初始化(默认零值);2)根据值自动推断类型;3)简短声明:=。变量命名由字母、数字和下划线组成,首字符不能为数字。零值规则:数值类型为0,布尔型为false,字符串为空"",指针/切片等为nil。支持多变量同时声明,全局变量可使用因式分解写法。通过unsafe.Sizeof()可获取变量内存占用大小。示例展示了基本声明、类型推断和零值特性,输出结果验证了不同声明方式的效果。

2025-07-24 09:59:05 528

原创 【Golang】Go语言基础语法

本文介绍了Go语言的基础语法要点,主要包括:Go程序由标记(关键字、标识符等)组成;行分隔符规则;单行和多行注释写法;标识符命名规范;字符串连接使用"+"运算符;25个关键字和36个预定义标识符;空格在代码格式化中的使用规范;以及Sprintf和Printf两种字符串格式化方法。这些基础语法规则是学习Go语言编程的重要前提,掌握这些内容有助于编写符合规范的Go程序。

2025-07-24 09:57:55 979

原创 【云平台管理】安装应用Ansible服务

YAML是一种用来表达资源序列的格式,参考了其他很多种语言所以具有很高的可读性。YAML是YAML Ain t Markup Language的缩写,即YAML不是XML。不过在研发这种语言时,YAML的意思其实是“Yet Another Markup Language”(仍是一种标记语言)。其特性如下:具有很好的可读性,易于实现表达能力好,扩展性好和脚本语言的交互性好有一个一致的信息模型可以基于流来处理Ansible为了更加便捷地管理主机,在主机清单中将被管理主机进行分组命名。

2025-04-14 14:23:39 1219

原创 【云平台管理】SaltStack部署Nginx高可用

在控制主机上再次访问VIP地址,后端一个Nginx节点正常提供服务,高可用结构正常。查看Haproxy的状态,显示minion已经宕机。

2025-04-14 14:22:36 894

原创 【云平台管理】SaltStack批量部署并配置Nginx

上面的配置文件实际上与一台服务器直接安装Nginx的过程是相同的,首先是安装包,然后是对配置文件进行修改,最后是启动服务。定义state的入口top.sls文件,注意和pillar的入口文件名字一样。,首先创建一个nginx目录,因为上面定义了Nginx配置文件的源路径。在执行结果中可以很明显的看出,被控主机的Nginx的根目录被配置成功。使用jinja模板定义Nginx配置文件。

2025-04-09 08:47:26 974

原创 【云平台管理】SaltStack部署应用

在生产环境中,服务器往往不只是一台,有可能是成千上万台。对于运维人员来说,如果单独的对每台服务器进行管理,工作难度比较大。这时部署自动化运维就可以尽可能安全、高效的完成这些工作。一般,会把自动化运行工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:SaltStack、Puppet、Func、Zabbix等;**另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如:Ansible、Fabrix等。本章将主要介绍自动化运维工具SaltStack是如何

2025-04-09 08:46:49 1015

原创 【自动化运维】Python 数据库操作

前面的章节中学习了使用Python读写文件的方法,大家可以用文件方式来存放数据,不过使用文件的方式不容易管理,同时还容易丢失会带来许多问题。目前主流的方法都是采用数据库软件,通过数据库软件来组织和存放数据,不管是读还是存都非常方便,速度也有保障。本篇介绍Python操作MySQL数据库软件的方法。数据库(Database)是按照数据结构组织、存储和管理建立在计算机存储设备上的数据仓库。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发。

2025-04-09 08:43:39 1547

原创 【自动化运维】Python 网络编程

Paramiko是一个用于SSHv1和SSHv2的Python模块,可以用于连接和控制SSH客户端和SSH服务器。使用Paramiko模块,可以轻松地编写Python脚本来远程登录并操作服务器。使用pip命令安装Paramiko模块,命令如下。

2025-04-06 12:47:37 1105

原创 【自动化运维】Python异常处理与程序调试

异常处理是程序用于处理以外情况的代码段,而在代码编写的过程中,经常要进行代码的调试和测试工作。本章将介绍 Python 语言中的异常处理和程序调试的具体使用方法。

2025-04-06 12:46:57 1172

原创 【自动化运维】Python 文件管理

在Python中,文件操作是一项重要的任务。我们常常需要读取、写入或者修改文件的内容。在处理文件时,我们常常需要定位到文件的某个位置进行操作,这时就需要使用到sekk函数。seek函数是Python的内建函数,它用于改变当前读写位置。

2025-04-04 15:39:40 1121

原创 【自动化运维】函数与模块

Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的。

2025-04-04 15:38:52 1450

原创 【自动化运维】Python 流程控制

Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的。

2025-04-03 10:01:10 981

原创 【自动化运维】Python 的安装和使用

列表是Python内置的一种数据结构,由中括号"[]"定义,元素以逗号开发语法格式:列表名 = [元素1,元素2,…]可以把一个元素添加到列表的最后语法格式:append(元素值)# 示例12:将元素添加到列表最后位置>>> num.append('004') # 末尾添加新元素# 示例12的代码执行语句num.append('004')之后,字符串”004“被添加到列表的末尾。

2025-04-03 10:00:21 1080

原创 【自动化运维】Python 简介与入门

如果你要用计算机做很多工作,最后你会发现有一些任何你更希望自动化的方式取进行处理。比如你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特俗的GUI应用程序或一个简单的小游戏。如果你是一名专业的软件开发者,你可能必须使用集中C/C++/JAVA类库,并且发现通常编写/编译/测试/重新编译的周期是如此漫长。也许你正在为这些类库编写测试用例,但是发现这是一个让人烦躁的工作。

2025-04-03 09:59:28 546

原创 【DevOps】Jenkins配置钉钉邮件通知

Jenkins作为最流行的开源持续集成平台,其强大的拓展功能一直备受测试人员及开发人员的青睐。都知道我们可以在Jenkins中安装Email插件支持构建之后通知邮件将结果及时通知到相关人员。但其实Jenkins还可以支持顶顶消息通知,其主要通过DingTalk这个插件来实现的。

2025-01-14 11:00:46 1446

原创 【DevOps】Pipeline功能语法

【代码】【DevOps】Pipeline功能语法。

2025-01-14 10:56:09 768

原创 【DevOps】Jenkins使用Pipeline构建java代码

我第一次构建就是因为网络查导致失败了,网络速度快的话,一遍就能走下来。时间有点漫长,这取决于你的网速(耐心等待)

2025-01-12 19:46:19 1274

原创 【DevOps】Jenkins使用Pipline发布Web项目

创建一个文件“Jenkins”,将刚才的pipline代码填写到此文件。注意:Jenkins首字母要大写(J)

2025-01-12 19:41:35 1268

原创 【DevOps】Jenkins项目发布

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好的协同工作以确保软件开发的质量已经慢慢成为开发过程各种不可回避的问题。Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、测试、部署得以持续。

2025-01-01 18:10:42 2435

原创 【DevOps】Jenkins部署

Manage jenkins“——>”Credentials“,打开如下页面,并点击”全局“,进入全局凭据管理界面,如下图所示。在如下界面中,点击右上角的”Add Credentials“按钮,添加凭据。”Dashboard“——>”新建Item“——>”确定“按钮。”Dashboard“——>”新建Item“——>”确定“按钮。用管理员的权限创建两个项目,名字分别是。

2025-01-01 17:59:29 1652

空空如也

空空如也

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

TA关注的人

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