自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DevOps实践指南(目录)

入口精益运动敏捷宣言1. 敏捷、持续交付和三步法1.1 制造业价值流1.2 技术价值流1.2.1 聚焦于部署前置时间1.2.2 关注返工指标——%C/A1.3 三步工作法:DevOps 的基础原则2. 第一步:流动原则2.1 使工作可见2.2 限制制品数2.3 减小批量大小2.4 减少交接次数2.5 持续识别和改善约束点2.6 消除价值流中的困境和浪费2.7 小结3. 第二步:反馈原则3.1 在复杂系统中安全地工作3.2 及时发现问题3.3 群策群力,战胜问题获取新知。

2023-12-21 10:20:24 835

原创 RHCE8 资料整理(目录)

【代码】RHCE8 资料整理(目录)

2023-12-21 10:09:45 407

原创 《持续交付:发布可靠软件的系统方法》 - 目录

【代码】《持续交付:发布可靠软件的系统方法》 - 目录。

2023-11-16 22:15:00 178

原创 【BASH】回顾与知识点梳理(四十)目录

【BASH】回顾与知识点梳理 - 目录

2023-08-04 09:23:44 1020

原创 Linux实用性脚本 [bash]

Linux实用性脚本 [bash]1. 列出排名前 5 的CPU/内存占用进程2. iptables 自动屏蔽访问网站频繁的IP3. 自动发布 Java 项目(Tomcat)4. Nginx 访问日志分析脚本5. 查看网卡实时流量脚本6. 批量检测网站是否异常并邮件通知7. 目录入侵检测与告警8. 一键查看服务器利用率 *9. 以 root 身份运行整个 shell 脚本10. 将视频转换为gif动图1. 列出排名前 5 的CPU/内存占用进程CPU[root@k8s-master-02 ~]#

2024-04-03 17:13:42 1106

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 06-安装网络组件

把本机网卡的所有IP列出来,然后选择第一个IP(docker0与lo网卡的IP会被忽略掉),第一个IP会因为操作系统的不同而不同,比如在centos操作系统中,假设网卡ens33有一个IP 192.168.92.101,网卡ens37有两个IP 192.168.90.101(primray)和192.168.90.10(second),那么找到的IP就是192.168.90.101(好像是按每个网卡的primary IP升序排列)如果一个网卡有多个IP,都可以到达x.x.x.x,则选择哪一个(待验证)。

2024-03-07 16:56:19 891

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 05-安装node节点

因为后续需要用 DaemonSet Pod方式运行k8s网络插件,所以kubelet.server服务必须开启cni相关参数,并且提供cni网络配置文件。kube-proxy-config 文件的注释说明。该步骤已经在 deploy节点完成,

2024-03-07 16:56:02 421

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 04-安装master节点

项目master 分支使用 DaemonSet 方式安装网络插件,如果master 节点不安装 kubelet 服务是无法安装网络插件的,如果 master 节点不安装网络插件,那么通过apiserver 方式无法访问 dashboard kibana等管理界面。controller-manager由一系列的控制器组成,它通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态。在master 节点也同时成为 node 节点后,默认业务 POD也会调度到 master节点;

2024-03-07 16:55:49 921

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 03-安装容器运行时

启动pod的时候会用到,所以如果无法启动pod,很有可能是这个插件没装好。不过kubeasz项目已经为我们填好了。注意:k8s 1.24以后,项目已经设置默认容器运行时为 containerd,无需手动修改。containerd和docker命令大体相似,我们甚至可以通过。

2024-03-07 16:55:36 349

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 02-安装etcd集群

etcd使用对等证书,hosts 字段必须指定授权使用该证书的 etcd 节点 IP,这里枚举了所有ectd节点的地址。注意:证书是在部署节点创建好之后推送到目标etcd节点上去的,以增加ca证书的安全性。kuberntes 集群使用 etcd 存储所有数据,是最重要的组件之一,三台 etcd 的输出均为 healthy 时表示集群服务正常。,本文档使用3个节点做集群。

2024-03-05 11:58:08 324

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 01-创建证书和安装准备

使用kubectl config 生成kubeconfig 自动保存到 ~/.kube/config,生成后 cat ~/.kube/config可以验证配置文件包含 kube-apiserver 地址、证书、用户名等信息。使用kubectl config 生成kubeconfig 自动保存到 kube-controller-manager.kubeconfig。使用kubectl config 生成kubeconfig 自动保存到 kube-scheduler.kubeconfig。

2024-03-05 11:32:48 835

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 00-规划集群和配置介绍(二)

然后根据提示配置和, config.yml 使用默认配置即可。

2024-03-05 11:31:00 857

原创 Kubernetes 二进制部署 《easzlab / kubeasz项目部署》- 00-规划集群和配置介绍(一)

一款基于Ansible的Kubernetes安装与运维管理工具,提供自动化部署、集群管理、配置管理等功能。- 功能:提供自动化部署Kubernetes集群、节点管理、容器管理、存储管理、网络管理等功能。- 特点:基于Ansible,易于上手;支持离线安装;支持多种Kubernetes版本。官网。

2024-02-23 17:43:07 932

原创 harbor(docker仓库)仓库部署 - 高可用

假设如果一个实例A挂掉了,这个时候有新的镜像进来,那么新的镜像就会在另外一个实例B中,后面即使恢复了挂掉的A实例,Harbor实例B也不会自动去同步镜像,这样只能手动的先关掉Harbor实例B的复制策略,然后再开启复制策略,才能让实例B数据同步,让两个实例的数据一致。由于我们安装的harbor通过http跳转到https访问,所以前面设置的nginx的负载均衡的配置需要进行修改,否则无法访问。部署nginx,redis,mysql,nfs等服务,生产环境中应该分开,并且配置成为高可用。

2024-02-23 17:38:59 1527 1

原创 Server/PC 稳定性测试(Windows)

因为很多时候在用户毫无察觉的情况下,硬盘自动重定位了缺陷扇区,然而每次访问的时候就会先读缺陷扇区再跳到保留区读备用扇区,这样一来一去的对缺陷扇区反复读写,次数越多该扇区磨损就会越严重(缺陷分二种类型,1介质失磁,2碟片与磁头碰撞。能分析磁盘,生成一个方块表格,表格越大,表示占用磁盘越大,橙色代表文件夹,蓝色代表文件,能很直观的看出文件在磁盘中的占比,也能轻松找到大文件。硬盘的工作是属于精密机械一类的,里面有硬盘盘片、带动盘片转动的电机、磁头、磁头伺服电机,这些都属于机械装置,是会磨损的。

2024-01-16 20:00:00 1139

原创 Centos7 制作系统镜像iso文件

这部分针对有系统备份需求,防止系统遭受意外状况,无法紧急恢复。整体备份内容较大,建议考虑后再进行操作。”下看到一个ISO镜像文件。至此,你就可以将备份镜像刻录到CD/DVD中,以便于以后恢复系统使用。软件进行备份及制作镜像,基本上是一键到底mondo。如果你已经选择了默认的备份路径,你将会在“为镜像安装系统,我们会看到这样的界面,输入。重启后,即可进入系统。

2024-01-15 20:00:00 1423

原创 openGauss + Datakit

opengauss官网openGauss 是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss采用木兰宽松许可证v2发行,提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。同时,openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。openGauss是单机系统,支持一主多备,最多支持八个备机。详情请参见openGauss架构图。

2024-01-05 21:00:00 1115

原创 linux 内核模块

另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用Memory的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。Linux的文件系统模块采用先进的虚拟文件系统技术,屏蔽了各种文件系统的差别,为处理各种不同的文件系统提供了统一的接口,支持多种不同的物理文件系统达90多种。Linux 内核采用的是模块化技术,这样的设计使得系统内核可以保持最小化,同时确保了内核的可扩展性与可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现动态内核的调整。

2023-12-28 19:00:00 1202

原创 linux 网络工具(二)

如果失败,路由将失败。如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。在linux系统中,一条路由策略rule主要包含三个信息,即rule的优先级,条件,路由表。在linux系统启动时,内核会为路由策略数据库配置三条缺省的规则,即rule 0,rule 32766, rule 32767(数字是rule的优先级,0优先级最高)进行路由时,正是根据路由规则来进行匹配,按优先级从高到低匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的。

2023-12-27 21:45:00 1068 1

原创 linux 网络工具(一)

RHEL 和 CentOS 系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用 nmcli 命令来管理 NetworkManager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多。mcli命令 是一个非常丰富和灵活的命令行工具,可以完成网卡上的所有配置,并可以写入配置文件中centos默认安装,而ubuntu需要手动安装SYNOPSISNAMESYNOPSISOPTIONS选项作用-t。

2023-12-27 20:45:00 969

原创 无人职守自动安装linux操作系统

的简写,即网络文件系统。配置安装方式可以选择全新安装或者升级安装,本文中为全新安装,设置安装过程中所需安装文件(Centos7 系统光盘中的内容)通过NFS读取,这里的NFS服务器为192.168.17.139,共享目录为/media。当读取安装程序进入安装界面后,剩余的步骤,如语言设置、系统管理员密码、网络参数等参数还需要我们手动设置,至此,我们仅可以实现无盘网络启动,若要实现无人职守自动安装,还需要。此外,kernel指定的是系统内核文件,在上面的步骤中,我们已将该文件复制到TFTP共享目录中。

2023-12-27 20:00:00 1858

原创 RHCE8 资料整理(十三)

这里变量selinux_ports是一个列表,里面的元素需要定义多个变量,但是变量名无法确认。如果同时定义了变量,且变量值不同,则角色的vars中定义的变量会生效。加密,解密及查看等操作都需要输入密码,可以把密码写入一个文件中。除了我们自行创建的角色外,系统中也包含了一些内置的角色。选项对密文解密,解密后的YAML文件将是明文显示,格式。可以对playbook中的某个字符串进行加密,例如,对。回顾我们在前文中写的handler的yml文件,中定义这个变量,覆盖默认变量值,命令如下,

2023-12-21 20:00:00 938

原创 RHCE8 资料整理(十二)

假设目前Nginx的配置文件在所有的服务器上都是相同的,但我希望能根据每一台服务器的性能去定制服务的启动进程。1.handlers是ansible提供的条件机制之一,handlers和tasks很类似,但是只在被tasks通知的时候才会触发执行;除了jinja2模板中手动定义的列表,一般情况下,我们会在playbook中定义列表,然后对列表中的元素进行循环。4.当tasks所有需要执行的任务执行完毕,才会执行handlers中的任务,并非跳转执行。) 功能,它可以帮助我们完美的解决问题。

2023-12-21 19:00:00 899

原创 RHCE8 资料整理(十一)

一个play中可以包含多个task,如果不想所有的task全部执行,可以设置只有满足某个条件才执行这个task。一般同用,类似于shell判断语句中的if-else,在block下面可以包含多个模块,来判断这多个模块是否执行成功。在最后一个task中,加入判断语句when,使age等于18的user进行打印。在when语句中,除可以使用上面的大于、小于等判断方法外,还可以使用。对于when来说,只能做一个判断,成立就执行,不成立就不执行。when作为一个判断语句,出现在某个task下,格式,

2023-12-20 20:00:00 887

原创 RHCE8 资料整理(十)三

此变量一般用于,当某个play的hosts中只写了A主机组,但同时想在此play中显示B主机组中的信息,此时可以选择此变量。在ansible中,除了用户手动定义一些变量外,还有一些内置变量,这些变量不需要用户定义可以直接使用。所谓变量的过滤器,实际上就是对变量的值进行一些操作,例如,进行类型转化,截取,加密等操作,格式如下,有时候需要对字符串进行加密操作,例如,创建用户时给用户设定密码,就要用密文形式。用于列出清单文件中所有定义的主机组及里面的主机,列表的过滤器可以求出列表的长度,最大值,最小值。

2023-12-19 21:00:00 355

原创 RHCE8 资料整理(十)二

通过vars来定义变量,vars和tasks对齐,格式如下,定义变量时,不可有重复的变量,否则后面定义的变量值会覆盖前面的,会有提示信息"msg": 456---vars:v1: 123v2: 321v1: 456tasks:引用变量时用{{ 变量名 }},大括号内存两边有无空格均可,但相同大括号之间不能有空格{{ var }}{{var}}{{ var}}{ {var}}#错误...tasks:^ here---vars:v1: 123v2: 321v3: 456。

2023-12-19 20:00:00 952

原创 RHCE8 资料整理(十)一

fail模块和debug模块相似,都是打印信息,区别在于debug执行完成后会继续执行后续模块,而fail打印完报错信息后会退出整个playbook。注意,yaml文件对缩进有严格要求,每个缩进都是两个空格,详细参考 上文中提到的连接。默认情况下,playbook的其中某个task出错,则后续的task不会继续执行,如,在写playbook时,会遇到各种各样的问题,例如命令出错,或引用变量不存在等。示例3,在db1组安装vsftp,开机自启,防火墙通行。示例2,在db1上打印主机名,在db2上打印ip。

2023-12-19 19:00:00 362

原创 RHCE8 资料整理(九)一

ansible主机通过ssh链接到被管理主机时,需要提前设置密钥登录,使得从ansible主机可以无密码登录到被管理的主机。执行ansible 或 ansible-playbook 命令时,优先使用当前目录中ansible.cfg的配置,如果当前目录中没有,则使用默认的。组合起来含义:当用ssh登录到被管理主机时,以sudo的方式切换到root,这也是前面在被管理主机上配置好sudo的原因。如果执行ansible命令时只想在部分主机上执行,那么在清单文件中可以对主机进行分组,组名写在中括号。

2023-12-18 19:00:00 932

原创 RHCE8 资料整理(九)二

如果在本地写了一个脚本,想在所有被管理的节点执行,没必要把脚本事先发布到所有节点,通过script模块即可快速实现。lineinfile 模块的用法与replace 基本一致,也是用于替换,常用参数,debug模块一般用于打印提示信息,类似于 shell 的echo命令,常用参数,在ansible中可以使用firewalld模块对防火墙进行管理,常见参数,卷组创建好之后就要创建逻辑卷了,管理逻辑卷的模块是lvol,常见参数,不过如果把这个键写入。格式化之后就需要挂载分区,挂载使用mount模块,常见参数,

2023-12-18 15:11:25 865

原创 python 协程

其原理是当一个greenlet遇到IO(指的是input output 输入输出,比如网络、文件操作等)操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。进程和线程都是通过CPU的调度实现不同任务的有序执行,而协程是由用户程序自己控制调度的,也没有线程切换的开销,所以执行效率极高。协程,又称微线程,纤程,也称为用户级线程,在不开辟线程的基础上完成多任务,也就是在单线程的情况下完成多任务,多个任务按照一定顺序交替执行。线程的切换非常耗性能。

2023-12-13 21:00:00 91

原创 python 多线程

一般来说,使用线程有两种模式,一种是创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的 class里。那么,可能线程"set"开始改的时候,线程"print"便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。

2023-12-13 20:30:00 43

原创 python 多进程

计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据。它们只有在被读取到内 存中,被操作系统调用的时候才开始它们的生命期。进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间,内存,数据栈以及其它记录其运行轨迹的辅助数据。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间。进程也可以通过 fork 和 spawn 操作来完成其它的任务。不过各个进程有自己的内存空间,数据栈等,所以只能使用进程间通讯(IPC), 而不能直接共享信息。

2023-12-13 20:00:00 158

原创 DOS 批处理 (二)

前面不是说了吗,批处理读取命令是按行读取,在处理之前要完成必要的预处理工作,这其中就包括对命令中变量复赋值,a被我赋值了4,我们下一行不是给a赋值了5吗,为什么不是5呢,“set a=5 & echo %a%”的意思是:我们打印a的值时与给a赋值5的命令是。的,正因为是同时执行的,所以批处理无法感知变量的动态变化。为了感知动态变化,批处理设计了变量延迟,简单来说,在读取一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说”延迟“了对变量的赋值。否则,你会得到其数值。

2023-12-07 21:00:00 217

原创 DOS 批处理 (一)

Shell / 壳层』:命令行界面的解释器,用户和系统内核的沟通桥梁。① 命令行界面(CLI);② 图形用户界面(GUI)『Shell』『图形用户界面(GUI)shell』『命令行界面(CLI)的 shell』,捋一下 Mac / Linux / Windows 下常见的 shell。讲解 shell、bash、cmd、zsh、PowerShell 等的区别。

2023-12-07 15:52:36 108

原创 DOS批处理 (三)

解析:自定义变量就是由我们来它们赋值的变量,要使用自定义变量就得使用set关键字SET [ options ] [ variable = [ string ] ] variable 指定环境变量名。string 指定要指派给变量的一系列字符串options 可选参数,分别由“/p”、 "/a" 两个可选参数备注:可选参数解析1、SET /p [变量名=[键盘输入的值]]2、SET /a [变量名=[可作数值自增计算]]set /p可以将你键盘输入的值赋给变量,set /a。

2023-12-07 15:43:01 190

原创 RHCE8 资料整理(八)

容器是软件的可执行单元,它采用通用方式封装了应用程序代码及其库和依赖项,因此可以随时随地运行容器(无论是在桌面、传统 IT 还是云端)。为此,容器利用一种操作系统 (OS) 虚拟化的形式,进而可以利用操作系统内核的功能(例如 Linux 命名空间和 cgroups、Windows 孤岛和作业对象)来隔离进程,并控制进程可以访问的 CPU、内存和磁盘的数量。容器小巧轻便、速度快且可移植;与虚拟机不同,容器不需要在每个实例中都包含访客操作系统,只需利用主机操作系统的功能和资源。

2023-11-24 22:00:00 1120

原创 loginctl - 控制 systemd 登录管理器

启用/禁止用户逗留(相当于保持登录状态)。如果指定了用户名或UID, 那么系统将会在启动时自动为这些用户派生出用户管理器, 并且在用户登出后继续保持运行。这样就可以允许未登录的用户在后台运行持续时间很长的服务。如果没有指定任何参数, 那么将作用于当前调用者的用户。loginctl在使用时需要systemd-logind.service开启。如果指定SIGSTOP,则session没有退出,但用户的终端会停止响应。可以看到:同一个用户可以开启多个session。

2023-11-24 20:00:00 250

原创 关于 Docker

在 Windows 上,它略有不同,与 runc 相当的是微软的主机计算服务(HCS),它包括一个叫runhcs的工具,它本身是 runc 的一个分叉,也实现了开放容器倡议的规范。将所有的用于启动、管理容器的逻辑和代码从 daemon 中移除,意味着容器运行时与 Docker daemon 是解耦的,有时称之为“无守护进程的容器(daemonless container)”,如此,对 Docker daemon 的维护和升级工作不会影响到运行中的容器。runc 是 OCI 容器运行时标准的参考实现。

2023-11-22 23:00:00 1006

原创 RHCE8 资料整理(七)

SELinux 全称是 Security-Enhanced Linux,目的是提高系统的安全性。当我们执行某个操作时,如果SELinux认为此操作有危险,则会拒绝进一步的访问。详细参考临时开启和关闭selinuxsetenforce 1 #开启setenforcd 0 #关闭永久开启或关闭...SELINUX=enforcing #开启#SELINUX=disable #关闭...永久开启或关闭都需要重启机器,可能会很慢。

2023-11-22 22:00:00 1069

原创 《持续交付:发布可靠软件的系统方法》- 读书笔记(十五)

持续交付:发布可靠软件的系统方法(十五)第 15 章 持续交付管理15.1 引言15.2 配置与发布管理成熟度模型15.3 项目生命周期15.3.1 识别阶段15.3.2 启动阶段15.3.3 初始阶段15.3.4 开发与发布15.3.5 运营阶段15.4 风险管理流程15.4.1 风险管理基础篇15.4.2 风险管理时间轴15.4.3 如何做风险管理的练习15.5 常见的交付问题、症状和原因15.5.1 不频繁的或充满缺陷的部署15.5.2 较差的应用程序质量15.5.3 缺乏管理的持续集成工作流程15.

2023-11-16 16:34:27 92

空空如也

空空如也

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

TA关注的人

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