- 博客(98)
- 收藏
- 关注
原创 Python数据库操作
数据库(Database)是按照数据结构来组织、存储和管理建立在计算机存储设备上的数据仓库。MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发。MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、windows、Mac 和 Solaris。MySOL 采用标准的 SOL 语言(结构化查询语言),SQL 是一种数据库査询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
2024-10-16 12:02:16
1276
原创 Python网络编程
Paramiko 是一个用于 SSHv1 和 SSHv2 的 Python 模块,可以用于连接和控制 SSH 客户端和 SSH 服务器。使用 Paramiko 模块,可以轻松地编写 Python 脚本来远程登录并操作服务器。
2024-10-15 11:11:56
1131
原创 异常处理与程序调试
异常处理是程序中用于处理意外情况的代码段,而在代码编写的过程中,经常要进行代,码的调试和测试工作,本章将介绍Python 语言中异常处理和程序调试的具体使用方法。
2024-10-14 11:15:33
1203
原创 Python文件管理
在计算机系统中,以硬盘为载体存储在计算机上的信息集合称为文件。文件可以是文本 文档、图 片、声音、程序等多种类型。在编程时经常要对文件进行读写等操作,从程序员的 视角可以把文件理 解为是连续的字节序列,进行数据传输需要使用字节流,字节流可以是由 单个字节或大块数据组成。文件类型通常分为文本文件和二进制文件。对文件进行操作在 Python 中分为 3 个步骤,首先要打开文件,然后是对文件进行读写操作,最后 需要关闭文件。
2024-10-12 11:58:36
1394
原创 Python 函数与模块
下面代码演示模块的定义,保存的文件名是 myModule.py。在模块 myModule 中,定义了 2 个函数,一个加法函数和一个乘法函数。它们处理的问题 是同类的,作为一个模块定义。
2024-10-11 12:23:28
818
原创 Python流程控制
Python 流程控制是 Python 编程中非常重要的一部分,它用于控制程序的执行流程。Python 提供了多种流程控制语句,包括 if 语句、while 循环、for 循环、break 和 continue 语句等。这种流程控制在各个语言中都是大同小异的。
2024-10-10 11:52:44
1423
原创 Python简介与入门
示例7:使用引号定义字符串的值示例代码如下:字符串变量 title1中出现了单引号,需要使用双引号定义,字符串变量 title2 中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。Python中的转义字符是“\”,只要在特殊字符前面加上“\”,就可以输出原字符,而不需关注定义字符串使用的是单引号还是双引号。示例 8:使用转义字符为字符串赋值示例代码如下:备注:Python 的常用转义字符\ (在行尾时)续行符\\ 反斜杠符号。
2024-10-09 12:30:41
1957
原创 Jenkins+kubernetes流水线构建java项目
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付(Continuous Delivery,CD)和持续部署。作为一个面向开发和运营团队 的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(也称“集成地狱”)。具体而言,CI/CD 在整个应用生命周期内,(从集成和测试阶段到交付和部署)引入了持续自动化和持续监控,这些关联的事物通常被称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。
2024-10-08 12:18:21
1559
原创 Jenkins Pipline流水线
Jenkins 流水线是一套插件,它支持在 Jenkins 中实现和集成持续交付流水线(continuousDeliveryPipeline)。流水线提供了一组可扩展的工具,用于通过 Pipeline Dsl(DomainSpecific Language)将简单到复杂的交付流水线以代码的形势展现,类似于基础设施即代码。持续交付流水线会经历一个复杂的过程:从版本控制、向用户和客户提交软件、软件的每次变更(提交代码到仓库)到软件发布(Release)。
2024-10-02 14:03:45
1979
原创 jenkins部署Maven和NodeJS项目
每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。比如我再 eclipse 中创建的目录,无法在 idea 中进行使用,这就造成了很大的不方便。Maven 提供了一套标准化的项目结构,所有的 IDE 使用 Maven 构建的项目完全一样,所以 IDE 创建的 Maven 项目可以通用。Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 ava 平台的项目构建和 依赖管理。Maven 这个单词的本意是:专家,内行。读音是['merv(ə)n]或['mevn]
2024-09-29 14:38:37
3064
原创 jenkins项目发布基础
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。
2024-09-27 12:28:01
1862
原创 初识Jenkins持续集成系统
Jenkins 是一个功能强大的应用程序,允许持续集成和持续交付项目(持续部署),无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成 Jenkins 可以用于一些测试和部署技术。Jenkins 原名 Hudson,2011 年改为现在的名字,它是一个开源的实现持续集成的软件工具。官方网站网址:https://jenkins.io/。Jenkins 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能通过图表的形式,形象地展示项目构建的趋势和稳定性。
2024-09-25 17:38:17
1765
原创 代码管理系统简介与部署git、gitHub、gitLab
Git(读音为/gIt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 的优势就是:每个人都拥有全部的代码,可以避免一些安全隐患。不会因为服务器损坏或者网络问题,造成不能工作的情况。所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时 push 到相应的服务器或其他用户那里。
2024-09-24 12:27:44
1105
原创 Ansible PlayBook实践案例
Playbook 的设计目的是为了让某个或某些主机以某个用户身份去执行完成相应的任务。其中用于指定要执行指定任务的主机用 hosts 定义,可以是一个也可以是由冒号分隔的多个主机组;用于指定被管理主机上执行任务的用户用 remote user 来定义,如下面示例中所示。remote user 也可定义指定用户通过 sudo 的方法在被管理主机上运行指令,甚至可以在使用sudo 时用 sudo user 指定 sudo 切换的用户。
2024-09-23 12:04:16
1283
原创 Ansible部署与应用基础
Ansible 是基于 Python 开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署 变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。注意:若省略-m 选项,默认运行 command 模块。
2024-09-21 10:38:21
1321
原创 SaltStack的state定义主机状态及Jinja模版的使用
State 是 saltstack 系统中的配置语言,在日常运维中需要编写大量的 state 文件,例如:创建用户、安装软件、配置软件、服务运行等。需要编写一些 state SLs 文件,即状态配置文件去描述和实现相应的功能。state sLs 主要使用 YAML 语言,也可以支持使用 Python 语言编写。例如以下语句,用 yaml 语言描述了一个安装 apache 的 state 模块。apache-install:#ID声明,ID必须唯一pkg.installed:#state 状态声明。
2024-09-20 15:01:02
1380
1
原创 SaltStack部署与应用基础
web01:----------changes:----------name:zhangsancomment:result:Trueweb01:----------name:zhangsan也可以使用JSON格式同时定义多个值:web01:----------changes:----------cpu_info:- intel- xeon- 2comment:result:Trueweb01:----------cpu_info:- intel。
2024-09-19 14:33:58
1484
原创 Prometheus监控k8s环境构建
node-exporter + prometheus + grafana 是一套非常流行的 Kubernetes 监控方案。node-exporter:节点级指标导出工具,可以监控节点的 CPU、内存、磁盘、网络等指标,并暴露Metrics 接口。Prometheus:时间序列数据库和监控报警工具,可以抓取 Cadvisor 和 node-exporter 暴露的Metrics 接口,存储时序数据,并提供 PromQL 查询语言进行监控分析和报警。
2024-09-18 12:35:08
3996
原创 Prometheus监控系统部署及应用
多维数据模型,可以按照实例,服务,端点和方法之类的维度随意对数据进行切片和切块。操作简单,可以随时随地部署监控服务,甚至在本地工作站上,而无需设置分布式存储后端或重新配置环境。可扩展的数据收集和分散的架构,以便于可以可靠的监控服务的许多实例,独立团队可以部署独立的监控服务。转化为一种查询语言,可以利用数据模型进行有效的警报和图形展示。
2024-09-14 12:13:17
3011
原创 Zabbix监控k8s云原生环境
Zabbix 是一个基于 web 界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数保障服务器及设备的安全运营。Zabbix 6.8 LTS 新增 Kubernetes 监控功能,可以在 Kubernetes 系统从多个维度采集指标。我们今天就来实现 Zabbix6.0 对 K8S 的监控。注意:使用前面初始化得到的临时密码。
2024-09-13 12:15:51
2026
原创 Zabbix企业级应用案列
Grafana 是一个开源的指标量监测和可视化工具,官方网站为:https://grafana.com/。Grafana的安装非常简单,官方就有软件仓库可以直接使用,也可以通过 docker 镜像等方式直接本地启动。还可以直接下载 rpm 包、二进制包进行安装。大家可以从 https://grafana.com/grafana/download 下载 rpm 安装包。Grafana,是一个开源的数据可视化工具,它可以帮助用户将数据源中的数据进行图形化展示和实时监控,以便于用户能够更加直观地理解数据。
2024-09-12 12:10:05
1575
原创 Zabbix自定义监控项与触发器
Zabbix 中内置了很多监控参数(Key),我们可以通过在客户端配置文件中定义 key,获取监控对象中的系统、CPU、网络、内存、文件系统等信息。Key(键)是 zabbix 标记 item 的键,是一种标识符。利用 key 可以定义一个监控对象,那么这个监控对象肯定是采集数据的,但是采集数据的时候可能存在很多节点与 server 交互,那么需要具体采集哪个节点,就可以用 key 进行采集。
2024-09-11 13:41:59
3369
原创 Zabbix监控自动化
Agent 程序有两种工作模式:主动模式和被动模式。我们知道获取数据的方式有两种,一种是 get,一种是 push;在 zabbix 中描述主动监控和被动监控都是站在 agent 的一方来描述的;我们把 agent 主动将数据发送给 zabbix server 这种方式采集数据,叫做主动监控;
2024-09-10 12:18:02
1636
原创 Zabbix企业级分布监控环境
监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为5种监控类型。应用性能监控业务交易监控网络性能监控操作系统监控网络站点监控上面5种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上5个细分的领域。在任何一个 IT 业务环境中,都会存在各种各样的硬件设备、软件应用等。
2024-09-09 14:50:21
1542
原创 k8s灰度/金丝雀发布
灰度及蓝绿发布是为新版本服务创建一个与老版本服务完全一致的生产环境,在不影老版本服务的前提下,按照一定的规则把部分流量切换到新版本,当新版本试运行一段时间没有问题后,将用户的全量流量从老版本迁移至新版本。灰度发布的方式通常用于AB测试,是指一部分用户继续使用老版本的服务,将一部分用户的流量切换到新版本,如果新版本运行稳定,则逐步将所有用户迁移到新版本。金丝雀发布是指在生产环境中逐步推出新版本应用程序,只在一小部分用户或流量中使用该版本,并根据反馈逐步扩大规模,最终完全替换旧版本。
2024-09-06 09:50:55
1155
原创 k8s服务发布Ingress
Kubernetes暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、,通俗来讲,ingress和之前提到的Service、Deployment,也是一个k8s的资源类型,ingress用于实现用域名的方式访问k8s内部应用。Ingress为Kubernetes集群中的服务提供了入口,可以提供负载均衡、SSL终止和基于名称的虚拟主机,在生产环境中常用的Ingress有Treafik、Nginx、HAProxy、Istio等。
2024-09-05 12:14:18
1389
5
原创 K8S日志收集EFK
基于云原生 12 要素开发的程序,一般会将日志直接输出到控制台,并非是指定一个文件存储日志,这一点和传统架构还是有区别的。但是公司内的程序并非都是基于云原生要素开发的,比如一些年代已久的程序,这类程序如果部署至 Kubernetes 集群中,就需要考虑如何将输出至本地文件的日志采集到Elasticsearch。
2024-09-03 15:21:50
1625
原创 云原生存储Rook部署Ceph
Rook 是一款云原生存储编排服务工具,Ceph 是一种广泛使用的开源分布式存储方案,通过Rook 可以大大简化 ceph 在 Kubernetes 集群中的部署和维护工作。Rook 由云原生计算基金会( CNCF )孵化,且于 2020 年 10 月正式进入毕业阶段。Rook 并不直接提供数据存储方案,而是集成了各种存储解决方案,并提供一种自管理、自扩容、自修复的云原生存储服务。
2024-09-02 14:21:59
2262
原创 Kubernetes的资源管理ResouceQuota、LimitRange、Qos
在生产环境中,可能会有多个 Kubernetes 集群,面向开发环境、测试环境、预生产环境和生产环境等。身为 Kubernetes 管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和 CPU,所以一个管理员去管理整个 Kubernetes 集群时,很少会有资源分配超出集群可调度范围的情况。但在实际使用时,Kubernetes 集群并非只有一个管理员在使用,也并非只有管理员在使用。
2024-08-30 10:59:50
909
原创 Kubernetes的Taint污点和Toleration容忍
设置了污点的 Node 将根据 taint 的 effect: Noschedule、PreferNoschedule、NoExecute 和 Pod之间产生互斥的关系,Pod 将在一定程度上不会被调度到 Node 上。但我们可以在 Pod 上设置容忍(Toleration),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。可以在 Podspec 中定义 Pod 的容忍度。#其中的 key、vaule、effect 都要与 Node 上设置的 taint 保持一致。
2024-08-28 12:03:01
1233
原创 Kubernetes高级调度 Initcontainer、Ephemeral containers和HPA
HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩器)可以根据观察到的 CPU、内存使用率或自定义度量标准来自动扩展或缩容 Pod 的数量。注意 HPA不适用于无法缩放的对象,比如 Daemonset。HPA 控制器会定期调整 RC或 Deployment 的副本数,以使观察到的平均 CPU 利用率与用户指定的目标相匹配。
2024-08-27 11:21:43
958
原创 Kubernetes存储Volume
数据是一个企业的发展核心,他涉及到数据存储和数据交换的内容。在生产环境中尤为重要的一部分,在 Kubernetes 中另一个重要的概念就是数据持久化 Volume。
2024-08-26 11:05:52
1922
1
原创 Kubernetes配置管理
在传统架构中,配置文件往往被保存在宿主机上,程序启动是可以指定某个配置文件,但是使用容器部署时,容器所在的节点并不固定,所以不能使用这种方式,此处在构建镜像时,如果把配置文件也放在容器里面,那么配置文件一旦有更改的话,也是一件非常麻烦的事情。所以 k8s 抽象了一个 configMap的概念,将配置与 pod 和组件分开,这有助于保持工作负载的可移植性,使配置更易于更改和管理。比如在生产环境中,可以将 Nginx、Redis 等应用的配置文件存储在 ConfigMap 上,然后将其挂载即可使用。
2024-08-24 11:05:18
925
原创 Kubernetes服务发布基础
Service 用于为一组提供服务的 Pod 抽象一个稳定的网络访问地址,是 k8s 实现微服务的核心概念通过 service 的定义设置的访问地址是 DNS 域名格式的服务名称,对于客户端应用来说,网络访问方式并没有改变。Service 还提供了负载均衡器的功能,将客户端请求负载分发到后端提供具体服务的各个Pod 上。
2024-08-23 11:22:01
1040
原创 Kubernetes Pod调度基础
metadata:spec:selector:ports:metadata:spec:selector:template:metadata:labels:spec:ports:备注:kind:service 定义了一个名字为redis-svc 的服务,定义了一个名字为redis-sts的 statefulset,replicas 表示部署 Podkind: statefulset的副本数。
2024-08-22 11:21:47
1082
原创 Kubernetes Pod入门
Pod 是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及运行规范。在 Pod中,所有容器都被统一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod 是它们的逻辑主机,Pod 包含业务相关的多个应用容器。所以,Pod 是一组具有共享命名空间、IP 地址和端口的容器的集合。备注:共享上下文是一种基于线程的内存位置。
2024-08-21 13:33:04
899
原创 Kubernetes群集部署
Kubernetes 是谷歌以 Borg 为前身,基于谷歌 15 年的生产环境经验开源的一个项目。Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台,其遵循主从式架构设计.组件可以分为工作节点(Node)组件,和控制平面组件。Kubernetes Master 是集群的主要控制单元,用于管理工作负载并指导整个系统的通信。
2024-08-19 16:22:01
791
原创 Docker安全与资源
和namespace类似,也是将进程进程分组,但是目的与namespace不一样,namespace是为了隔离进程组之前的资源,而cgroup是为了对一组进程进行统一的资源监控和限制。
2024-08-16 11:02:07
1392
原创 Containerd初体验
Containerd 的架构是 modularity(模块化)和可扩展性的体现,它被设计为一个轻量级、高度可定制的容器运行时。可以看出 Containerd 采用的也是 C/S 架构,服务端通过 unix domain socket 暴露低层的 gRPCAPI 接口出去,客户端通过这些 API 管理节点上的容器,每个 Containerd 只负责一台机器,Pu11 镜像,对容器的操作(启动、停止等),网络,存储都是由 containerd 完成。具体运行容器由 runc 负责。
2024-08-15 12:08:55
1239
原创 Docker日志管理
Filebeat 是 ELK 组件的新成员, 也是 Beat 成员之一。基于 Go 语言开发,无任何依赖并且比 Logstash 更加轻量,不会带来过高的资源占用, 非常适合安装在生产机器上。轻量意味着简单,Filebeat 并没有集成和 Logstash 一样的正则处理功能, 而是将收集的日志原样输出。以下是 Filebeat 的工作流程:当开启 Filebeat 程序的时候,它会启动一个或多个检测进程(prospectors) 找到指定的日志目录或文件。
2024-08-14 11:54:55
1251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人