- 博客(122)
- 收藏
- 关注
原创 【Golang】Go语言Map数据类型
本文介绍了Go语言中的Map数据类型及其基本使用方法。Map是一种无序的键值对数据结构,属于引用类型,需要初始化后才能使用。文章详细讲解了map的定义语法、基本操作(添加、访问、删除元素)、判断键是否存在的方法,以及遍历map的几种方式(包括按指定顺序遍历)。此外还介绍了两种特殊用法:元素为map类型的切片和值为切片类型的map。通过多个代码示例展示了map在实际开发中的应用场景和操作技巧。
2025-07-29 13:01:35
447
原创 【Golang】Go语言指针
本文介绍了Go语言中指针的特性与使用方法。主要包含以下内容:1) Go指针是安全指针,不支持偏移和运算,仅支持取址(&)和取值(*)操作;2) 详细说明了指针地址、指针类型和指针取值的概念与语法;3) 介绍了空指针判断方法;4) 对比讲解了new和make函数的区别:new用于类型内存分配并返回指针,make仅用于slice/map/channel初始化并返回引用类型本身。文章通过代码示例演示了指针传值、空指针处理以及new/make的实际应用场景。
2025-07-29 13:00:45
920
原创 【Golang】Go语言函数
Go语言函数特点包括:无需声明原型、支持不定变参、多返回值、匿名函数和闭包,函数可作为类型赋值给变量,但不支持嵌套、重载和默认参数。文章介绍了基本函数定义格式、匿名函数、自执行函数(只执行一次)、闭包函数(返回函数的函数)以及延迟调用(defer)机制。通过示例代码展示了各种函数的使用方式,包括参数传递、返回值处理、函数赋值等特性。
2025-07-27 13:46:57
330
原创 【Golang】Go语言运算符
本文介绍了Go语言中常用的运算符类型及其使用方法。主要内容包括: 算术运算符:+、-、*、/、%、++、--,用于基本数学运算 关系运算符:==、!=、>、<、>=、<=,用于比较两个值的关系 逻辑运算符:&&、||、!,用于布尔值的逻辑运算 位运算符:&、|、^、<<、>>,对整数的二进制位进行操作 每种运算符都通过表格形式展示了具体功能,并提供了实际代码示例演示其用法和输出结果。这些运算符是Go语言编程中的基础元素,掌握它们对于编写
2025-07-27 13:45:40
1226
原创 【Golang】Go语言变量
Go语言变量基础摘要 Go语言变量声明使用var关键字,支持多种声明方式:1)指定类型不初始化(默认零值);2)根据值自动推断类型;3)简短声明:=。变量命名由字母、数字和下划线组成,首字符不能为数字。零值规则:数值类型为0,布尔型为false,字符串为空"",指针/切片等为nil。支持多变量同时声明,全局变量可使用因式分解写法。通过unsafe.Sizeof()可获取变量内存占用大小。示例展示了基本声明、类型推断和零值特性,输出结果验证了不同声明方式的效果。
2025-07-24 09:59:05
434
原创 【Golang】Go语言基础语法
本文介绍了Go语言的基础语法要点,主要包括:Go程序由标记(关键字、标识符等)组成;行分隔符规则;单行和多行注释写法;标识符命名规范;字符串连接使用"+"运算符;25个关键字和36个预定义标识符;空格在代码格式化中的使用规范;以及Sprintf和Printf两种字符串格式化方法。这些基础语法规则是学习Go语言编程的重要前提,掌握这些内容有助于编写符合规范的Go程序。
2025-07-24 09:57:55
639
原创 【云平台管理】安装应用Ansible服务
YAML是一种用来表达资源序列的格式,参考了其他很多种语言所以具有很高的可读性。YAML是YAML Ain t Markup Language的缩写,即YAML不是XML。不过在研发这种语言时,YAML的意思其实是“Yet Another Markup Language”(仍是一种标记语言)。其特性如下:具有很好的可读性,易于实现表达能力好,扩展性好和脚本语言的交互性好有一个一致的信息模型可以基于流来处理Ansible为了更加便捷地管理主机,在主机清单中将被管理主机进行分组命名。
2025-04-14 14:23:39
963
原创 【云平台管理】SaltStack部署Nginx高可用
在控制主机上再次访问VIP地址,后端一个Nginx节点正常提供服务,高可用结构正常。查看Haproxy的状态,显示minion已经宕机。
2025-04-14 14:22:36
742
原创 【云平台管理】SaltStack批量部署并配置Nginx
上面的配置文件实际上与一台服务器直接安装Nginx的过程是相同的,首先是安装包,然后是对配置文件进行修改,最后是启动服务。定义state的入口top.sls文件,注意和pillar的入口文件名字一样。,首先创建一个nginx目录,因为上面定义了Nginx配置文件的源路径。在执行结果中可以很明显的看出,被控主机的Nginx的根目录被配置成功。使用jinja模板定义Nginx配置文件。
2025-04-09 08:47:26
809
原创 【云平台管理】SaltStack部署应用
在生产环境中,服务器往往不只是一台,有可能是成千上万台。对于运维人员来说,如果单独的对每台服务器进行管理,工作难度比较大。这时部署自动化运维就可以尽可能安全、高效的完成这些工作。一般,会把自动化运行工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:SaltStack、Puppet、Func、Zabbix等;**另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如:Ansible、Fabrix等。本章将主要介绍自动化运维工具SaltStack是如何
2025-04-09 08:46:49
831
原创 【自动化运维】Python 数据库操作
前面的章节中学习了使用Python读写文件的方法,大家可以用文件方式来存放数据,不过使用文件的方式不容易管理,同时还容易丢失会带来许多问题。目前主流的方法都是采用数据库软件,通过数据库软件来组织和存放数据,不管是读还是存都非常方便,速度也有保障。本篇介绍Python操作MySQL数据库软件的方法。数据库(Database)是按照数据结构组织、存储和管理建立在计算机存储设备上的数据仓库。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发。
2025-04-09 08:43:39
1386
原创 【自动化运维】Python 网络编程
Paramiko是一个用于SSHv1和SSHv2的Python模块,可以用于连接和控制SSH客户端和SSH服务器。使用Paramiko模块,可以轻松地编写Python脚本来远程登录并操作服务器。使用pip命令安装Paramiko模块,命令如下。
2025-04-06 12:47:37
914
原创 【自动化运维】Python异常处理与程序调试
异常处理是程序用于处理以外情况的代码段,而在代码编写的过程中,经常要进行代码的调试和测试工作。本章将介绍 Python 语言中的异常处理和程序调试的具体使用方法。
2025-04-06 12:46:57
1043
原创 【自动化运维】Python 文件管理
在Python中,文件操作是一项重要的任务。我们常常需要读取、写入或者修改文件的内容。在处理文件时,我们常常需要定位到文件的某个位置进行操作,这时就需要使用到sekk函数。seek函数是Python的内建函数,它用于改变当前读写位置。
2025-04-04 15:39:40
1006
原创 【自动化运维】函数与模块
Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的。
2025-04-04 15:38:52
1370
原创 【自动化运维】Python 流程控制
Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的。
2025-04-03 10:01:10
831
原创 【自动化运维】Python 的安装和使用
列表是Python内置的一种数据结构,由中括号"[]"定义,元素以逗号开发语法格式:列表名 = [元素1,元素2,…]可以把一个元素添加到列表的最后语法格式:append(元素值)# 示例12:将元素添加到列表最后位置>>> num.append('004') # 末尾添加新元素# 示例12的代码执行语句num.append('004')之后,字符串”004“被添加到列表的末尾。
2025-04-03 10:00:21
840
原创 【自动化运维】Python 简介与入门
如果你要用计算机做很多工作,最后你会发现有一些任何你更希望自动化的方式取进行处理。比如你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特俗的GUI应用程序或一个简单的小游戏。如果你是一名专业的软件开发者,你可能必须使用集中C/C++/JAVA类库,并且发现通常编写/编译/测试/重新编译的周期是如此漫长。也许你正在为这些类库编写测试用例,但是发现这是一个让人烦躁的工作。
2025-04-03 09:59:28
486
原创 【DevOps】Jenkins配置钉钉邮件通知
Jenkins作为最流行的开源持续集成平台,其强大的拓展功能一直备受测试人员及开发人员的青睐。都知道我们可以在Jenkins中安装Email插件支持构建之后通知邮件将结果及时通知到相关人员。但其实Jenkins还可以支持顶顶消息通知,其主要通过DingTalk这个插件来实现的。
2025-01-14 11:00:46
1244
原创 【DevOps】Jenkins使用Pipeline构建java代码
我第一次构建就是因为网络查导致失败了,网络速度快的话,一遍就能走下来。时间有点漫长,这取决于你的网速(耐心等待)
2025-01-12 19:46:19
1118
原创 【DevOps】Jenkins使用Pipline发布Web项目
创建一个文件“Jenkins”,将刚才的pipline代码填写到此文件。注意:Jenkins首字母要大写(J)
2025-01-12 19:41:35
1079
原创 【DevOps】Jenkins项目发布
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好的协同工作以确保软件开发的质量已经慢慢成为开发过程各种不可回避的问题。Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、测试、部署得以持续。
2025-01-01 18:10:42
1770
原创 【DevOps】Jenkins部署
Manage jenkins“——>”Credentials“,打开如下页面,并点击”全局“,进入全局凭据管理界面,如下图所示。在如下界面中,点击右上角的”Add Credentials“按钮,添加凭据。”Dashboard“——>”新建Item“——>”确定“按钮。”Dashboard“——>”新建Item“——>”确定“按钮。用管理员的权限创建两个项目,名字分别是。
2025-01-01 17:59:29
1491
原创 【Golang】Go语言教程
Go是从2007年未由Robert Griesemer,Rob Pike,Ken Thompson(三个人的名字)主持开发,后来还加入了lan Lance Taylor,Russ Cox等人,并最终与2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经完成开放的,并且拥有一个活跃的社区。Go是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。内存管理、数组安全、编译迅速。Go全称Golang。
2024-11-09 09:03:13
1302
1
原创 【云原生】Kubernetes部署Jenkins静动Slave
Kubernetes是一个开源的系统,用于自动化部署、扩展、以及容器化应用程序的管理。Kubernetes集群向Jenkins添加了一个新的自动化层。Kubernetes确保资源得到有效利用,并且您的服务器底层基础设施不会过载。Kubernetes编排容器部署的能力确保Jenkins始终具有适量的可用资源。Kubernetes集群上托管Jenkins有利于基于Kubernetes的把部署和基于容器的动态可扩展Jenkins代理。
2024-10-19 16:01:59
1338
原创 【云原生】Helm资源清单管理工具
在一个企业中,可能存在多个不同的应用业务,每个业务可能包含多个yaml资源清单,甚至几十个yaml资源清单,那么对于“运维”和“研发”人员来讲,这么多资源清单,通过人力去区分辨别,即便有名称空间namespace和不同的“路径目录”来进行区分,也是非常吃力的;所以,我们就需要借助k8s。
2024-10-13 12:40:01
1310
原创 【云原生监控】Prometheus之Alertmanager报警
Prometheus通过 规则文件对比抓取到的数据,来判断是否触发告警,我们通过配置告警的工具Alertmanager进行告警通知。规则文件,写的就是,当我们获取到PromeSQL的值到达一个设置的规则后,触发告警,也就是说,规则文件,是触发告警的关键,而Alertmanager是告警的手段、工具。
2024-09-17 20:05:40
2637
1
原创 【云原生监控】Prometheus动态发现
目前,我们每增加一个被监控的节点,就需要修改Prometheus的配置文件,然后重新加载Prometheus服务,这种方式比较繁琐,每次新增、 删除被监控节点都需要重新操作一遍,不适合生产环境的大规模监控架构;所以Prometheus就提供了这种问题的解决方案,方案有两种,基于文档的自动发现和基于网络的自动发现。
2024-09-17 20:03:13
1372
原创 【云原生监控】Prometheus之PushGateway
PushGateway为Promethus整体监控方案的功能组件之一,并作为一个独立的工具存在。它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙,目标服务器没有可抓取监控数据的端点等多种情况。在类似的场景中,可通过部署PushGateway的方式解决问题。当部署该组件后,监控源通过主动发送监控数据到PushGateway,再又Prometheus定时获取信息,实现资源的状态监控。
2024-09-16 12:43:04
1927
原创 【云原生监控】Prometheus监控系统
访问地址:http://192.168.93.103:3000。此时,就会看到,新配置的被监控项主体的指标列表。需重新设置密码即可登录。默认账户:admin。默认密码:admin。
2024-09-16 12:38:49
1932
原创 【云原生】RBAC授权详解
基于角色(Role)的访问控制(RBAC)是一种基于组织中用户的角色来调节控制对计算机或网络资源的访问的方法。RBAC签权机制使用API(Kubernetes API中的一组相关路径)组来驱动签权决定,允许你通过Kubernetes API动态配置策略。
2024-08-19 10:52:05
1409
原创 【云原生】UserAccount使用账户详解
Kubernetes用户账号可以直接在终端使用,用来读写有权限的资源或者非资源数据,而Service Account一般是用来绑定程序调用的。
2024-08-19 10:51:15
295
原创 【云原生】ServiceAccount程序用户详解
Kubernetes提供两种完全不同的方式来为客户端提供支持,这些客户端可能运行在你的集群中,也能与你的集群的控制平面有关,需要向API(提供Kubernetes API服务的控制平缅组件),服务器完成身份认证。服务账号(Service Account)为Pod中运行的进程提供身份标识,并映射到ServiceAccount对象。当你向API服务器执行身份认证时,你会讲自己标识为某个用户(User)。Kubernetes能够识别用户的概念,但是Kubernetes自身并不提供User API。
2024-08-19 10:49:27
1303
原创 【云原生】Ingress控制器超级详解
对其流量作负载均衡、SSL/TLS,以及基于名称的虚拟托管等能力。Ingress控制器负载完成Ingress的工作,具体实现上通常会使用某个负载均衡器,不过也可以配置边缘路由器或其他前端来帮助处理流量。Ingress提供从集群外部到集群内部服务的HTTP和HTTPS路由。流量路由,由Ingress资源所定义的规则来控制。Ingress不会随意公开端口或协议。将HTTP和HTTPS以外的服务开放到Ingress时,通常使用。图.基于域名实现虚拟托管的Ingress。Ingress控制器。
2024-08-16 12:29:37
1791
原创 【云原生】Service服务暴露详细
Kubernetes中Service是将运行在一个或一组Pod上的网络用用程序公开为网络服务的方法。Kubernetes中Service的一个关键目标是让你无需修改现有应用以使用某种不熟悉的服务发现机制。你可以在Pod集合中运行代码,无论该代码是为云原生环境设计的,还是被容器化的老应用。你可以使用Service让一个组Pod可以在网络上被访问,这样客户端就能与之交互。如果你使用Deployment来运行你的应用,Deployment可以动态地创建和销毁Pod。
2024-08-07 12:04:29
1270
原创 【云原生】Secret敏感信息存储
Secret是一种包含少量敏感信息例如密码、令牌或密钥的对象。这样的信息可能会被放在Pod规约种或者镜像中。使用Secret意味着你不需要再应用程序代码中包含机制数据。由于创建Secret可以独立于使用它们的Pod,因此在创建、查看和编辑Pod的工作流程中暴露Secret(及其数据)的风险较小。Kubernetes和在集群中运行的应用程序也可以对Secret采取额外的预防措施,例如避免讲敏感数据写入非易失性存储。Secret类似于ConfigMap但专门用来保存机密数据。
2024-08-06 14:42:42
1297
1
原创 【云原生】ConfigMap存储
ConfigMap是一种API对象,用来将非机密性的数据保存到键值对中。使用时,Pod可以将其用作环境变量、命令行参数或存储卷中的配置文件。ConfigMap将你的环境配置信息和容器镜像解耦,便于应用配置的修改。注意:ConfigMap并不提供保密或加密功能。如果你想存储的数据是机密性的,请使用Secret,或者使用其他第三方工具来保存你的数据的私密性,而不是用ConfigMap。
2024-08-06 14:41:42
1134
原创 【云原生】CronJob周期性任务详解
CronJob用于执行排期操作,例如备份、生成报告等。一个CronJob对象就像Linux系统上的crontab(cron table)文件中一行。它用Cron格式进行编写,并周期性地给定的调度事件执行Job。CronJob有所限制,也比较特殊。例如在某些情况下,单个CronJob可以创建多个并发任务。当控制平面为CronJob创建新的Job和(间接)Pod时,CronJob的是命名这些Pod的部分基础。CronJob的名称必须是一个合法的DNS子域值,但这会对Pod的主机名产生意外的结果。
2024-08-05 13:11:53
895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人