自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes (K8S)概述

从 Master 节点获取自己节点上 Pod 的期望状态(比如运行什么容器、运行的副本数量、网络或者存储如何配置等), 直接跟容器引擎交互实现容器的生命周期管理,如果自己节点上 Pod 的状态与期望状态不一致,则调用对应的容器平台接口(即 docker 的接口)达到这个状态。在K8S的集群里,虽然每个Pod会被分配一个单独的IP地址,但由于Pod是有生命周期的(它们可以被创建,而且销毁之后不会再启动),随时可能会因为业务的变更,导致这个 IP 地址也会随着 Pod 的销毁而消失。K8S 的存储服务。

2023-10-29 20:11:40 403

原创 Ansible 的脚本 --- playbook 剧本

roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。##Ansible在执行完某个任务之后并不会立即去执行对应的handler,而是在当前play中所有普通任务都执行完后再去执行handler,这样的好处是可以多次触发notify,但最后只执行一次对应的handler,从而避免多次重启。(4)在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,也可以不创建。

2023-10-29 20:11:03 270

原创 Ansible初认识

ansible dbservers -m file -a 'path=/opt/fstab.link src=/opt/fstab.bak state=link' #设置/opt/fstab.link为/opt/fstab.bak的链接文件。Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块, 比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等。

2023-10-29 20:10:31 235

原创 Docker--harbor私有仓库部署与管理

总共分为7个容器运行,通过在docker-compose.yml所在目录中执行 docker-compose ps 命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。如果进入 Harbor.cfg,只会在第一次启动 Harbor 时生效,随后对这些参数的更新,Harbor.cfg 将被忽略。之后, 此设置将被忽略,并且应在 UI 中设置管理员的密码。

2023-10-29 20:09:19 367

原创 Docker-compose和Consul

服务部署简单,只有一个可运行的二进制的包。后端服务A-N可以把当前自己的网络位置注册到服务发现模块,服务发现就以K-V的方式记录下来,K一般是服务名,V就是IP:PORT。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

2023-10-29 20:08:41 216

原创 Dockerfile镜像实战

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config #不使用PAM认证。RUN sed -ri '/^session\s+required\s+pam_loginuid.so/ s/^/#/' /etc/pam.d/sshd #取消pam限制。CMD ["/usr/sbin/sshd" , "-D"] #/usr/sbin/sshd -D 用于前台启动sshd服务。

2023-10-29 20:07:52 134

原创 Docker 的数据管理

但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。Dockerfile是由多条的指令组成的文件,其中每条指令对应 Linux 中的一条命令,Docker 程序将读取Dockerfile 中的指令生成指定镜像。在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。

2023-10-29 20:07:06 638 1

原创 Docker02基础操作

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

2023-10-09 08:54:47 92

原创 Docker01基本管理

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。(3)Docker将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡),另一端放在主机中, 以 * 这样类似的名字命名,并将这个网络设备加入到 docker0 网桥中。

2023-10-09 08:52:11 150

原创 Zabbix

案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息2.3.1 在客户端创建自定义 key1.创建模板点击左边菜单栏【配置】中的【模板】,点击【创建模板】【模板名称】设置成 Template Login User【可见的名称】设置成 Template Login User【群组】选择 Template【描述】可自定义点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了。

2023-10-09 08:49:53 59

原创 Zookeeper集群 + Kafka集群

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、Kafka 等。

2023-10-09 08:46:57 82

原创 ELK 企业级日志分析系统

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

2023-10-09 08:44:00 376

原创 GFS 分布式文件系统

在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的exp1 目录和 Server2 中的 exp2 目录。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1和 Server2 上。

2023-09-19 09:11:37 211

原创 Redis群集

sentinel monitor mymaster 192.168.10.23 6379 2 #84行,修改 指定该哨兵节点监控192.168.10.23:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移。数据的复制是单向的,只能由主节点到从节点。●自动故障转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其它从节点改为复制新的主节点。

2023-09-19 09:10:37 385

原创 NoSQL之 Redis配置与优化

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;everysec是前述两种策略的折中,是性能和数据安全性的平衡,因此是Redis的默认配置,也是我们推荐的配置。缺点:RDB文件的致命缺点在于其数据快照的持久化方式决定了必然做不到实时持久化,而在数据越来越重要的今天,数据的大量丢失很多时候是无法接受的,因此AOF持久化成为主流。

2023-09-19 09:09:54 533

原创 Redis 数据类型

redis 127.0.0.1:6379> zrangebyscore myzset -inf +inf limit 2 3 #-inf表示第一个成员(位置索引值最低的,即0),+inf表示最后一个成员(位置索引值最高的),limit后面的参数用于限制返回成员的值,2表示从位置索引等于2的成员开始,取后面3个成员。1)可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。

2023-09-19 09:09:09 291

原创 MySQL-MHA

该参数代表忽略上次 MHA 触发切换产生的文件,默认情况下,MHA 发生切换后会在日志记录,也就是上面设置的日志app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为--ignore_last_failover。master_ip_failover_script=/usr/local/bin/master_ip_failover  #设置自动failover时候的切换脚本,也就是上面的那个脚本。

2023-09-19 09:08:33 203

原创 MySQL 主从复制与读写分离

(3)同时Master节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至Slave节点本地的中继日志(Relay log)中,Slave节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,即解析成 sql 语句逐一执行,使得其数据和 Master节点的保持一致,最后I/O线程和SQL线程将进入睡眠状态,等待下一次被唤醒。//客户端会分别向slave1和slave2读取数据,显示的只有在两个从服务器上添加的数据,没有在主服务器上添加的数据。//只有主服务器上有此数据。

2023-09-19 09:07:57 209

原创 MySQL高阶语句

通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推。AS 之后的别名,主要是为表内的列或者表提供临时的名称,在查询过程中使用,库内实际的表名 或字段名是不会被改变的。

2023-09-19 09:06:36 307

原创 MySQL日志管理、备份与恢复

mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' --stop-datetime='年-月-日小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码。每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份的时间也很长。数据库备份可以分为物理备份和逻辑备份。

2023-09-19 09:05:27 158

原创 MySQL索引、事务、事务与存储引擎

不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,但其实是事务B刚插入进来的,让用户感觉很魔幻,感觉出现了幻觉,这就叫幻读。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

2023-09-19 09:04:39 487

原创 MySQL数据库

另外还有“.ibd”和 ibdata 文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。

2023-09-19 09:02:31 190

原创 Haproxy

--------------------参数说明------------------------------------------------------------------------------------------------参数说明---------------------------------------------------------------------------Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。

2023-09-19 08:54:02 131

原创 LVS+Keepalived群集

VRRP用多播的方式(多播地址:224.0.0.18)实现高可用之间的通信,工作时主节点发包,当备节点接受不到主节点发的数据包的时候,就主动接管主节点的资源,备节点可以有多个,通过优先级来进行竞选,但一般keepalived系统运维工作是一对的,所以vrrp就是使用加密协议加密数据,但keepalived官方目前还是推荐用明文的方式认证类型和密码。---------------------LVS 部署-------------------------

2023-09-19 08:41:58 417

原创 第八章LVS中的DR模式详解

(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。

2023-08-18 16:33:05 669

原创 第七章LVS负载均衡集群

1,lvs基于内核态的net filter框架实现的IPVS功能,工作在内核态,用户配置VIP等相关信息并且传递到IPVS。2,ipvsadmin:IPVSadm是lvs用户态的配套工具,可以实现VIP和RS增删改查。5,稳定可靠,即使是在集群的服务器中,某一台服务器无法正常工作,也不会影响整体效果。3,廉价,可以把许多低性能的服务器组合在一起形成一个超级设备(服务器)2,工作在网络层,可实现高新能,高可用的服务集群技术。4,易用,配置简单,有多重负载均衡的方式。1,主要用于多服务器的负载均衡。

2023-08-18 16:29:32 80

原创 第六章Tomcat部署以及优化

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads=2 -XX:PermSize=1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true -XX:+DisableExplicitGC" -server:第一个参数,指定内存池,一定放在第一个。)3,会话管理,跟用户在不同请求之间的状态,通过管理,可以在用户访问不同页面时保持用户的状态。

2023-08-15 09:48:10 120

原创 第五章nginx负载均衡

小场景:并发量很小,默认算法就可以满足适应条件后端web服务器的处理能力有差异:加权轮询,和最小连接数配合使用。大型并发:ip _hash 或者 url_hash。第一次请求之后,会有本地的缓存,而且因为hash算法的原因,请求的后台web服务器不会发生变化,可以提高访问速度,访问的是缓存。减轻了后台服务器的请求压力。

2023-08-15 09:43:52 601

原创 第四章nginx组件精讲

304:都是缓存,获取本地缓存break:是重定向,但是他不会改变url,而且只会请求1次。跳出当前的匹配,即可终止。last:本条的规则匹配完成后,继续向下匹配,只要有last',就继续匹配。匹配的时候需要注意,防止死循环rewrite or internal redirection cycle while processing #写成死循环,一直在匹配location,10次,返回码500。

2023-08-15 09:43:06 93

原创 第三章nginx详解

1,全局快,全局生效,所有模块,所有用户都生效。2,events:一个像nginx服务器和用户的网络连接问题。3,http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能是http的请求才可以写http模块中。)1,upstream:反向代理指定服务器的命令,七层,基于ip和端口,走http协议,只能在http模块中。4,serber块:包含在http模块中,不能单独设置。5,location:匹配uri,包含在sever当中的,也不能单独设置。)1,porxy_pass:反向代理。

2023-08-15 09:40:27 1560

原创 第一张Web及基础与HTTP协议

2,连接保持:keep-alive,在一个tcp连接上可以传送多个http的请求和响应,减少了建立和关闭连接的消耗和延迟。http是一种无状态的协议,本身不会对发送过的请求和响应的通行进行持久化处理(连接保持),为了让http能够快速大量的进行处理事务,提高效率。用来传输的通信协议,https就是加密的,是一种通信协议,基于头层皮、协议,端口号,http默认是80,https默认443。)8,post也是请求的一种,post是向后发数据,向服务器添加数据,也可以改变服务器上的数据。

2023-08-15 09:38:23 259

原创 shell第九章iptables防火墙

1,创建自定义链:iptables -N +自定义链名(没有指定表,就默认在filter表中添加一个自定义链)2,给自定义链改名:iptables -E +原链名 +新链名3,添加新的规则 iptables -I ky30 -p icmpiptables -I INPUT -p icmp -j ky30 创建在自定义链当中的规则,需要添加到默认链中,才能够使用-j ky30 自定义的链名。4,删除自定义链接。

2023-08-15 09:33:07 111

原创 shell脚本第八章shell编程免交互

注意事项:1,标记可以使用任意合法字符,通常用EOF作为标记。2,结尾的标记一定要顶格写,而且前面不能有任何字符。3,结尾的标记后面也不能有任何字符,包括空格。4,如果开头的标记前有空格,这个空格会被自动省略。cat结合免交互重定向输出到指定文件Expect免交互:tcl语言基础之上的一种工具,自动化测试和控制,在脚本中解决交互问题。转义符:\n:换行\t:制表符,TAB\r:回车\b:删除键基本命令格式:执行方式:1,必须赋权执行 chmod777。

2023-08-15 09:18:55 46

原创 shell第七章awk的应用

awk的条件判断打印: awk -F: '$3>10{print}' /etc/passwd | head -n 15 打印出/etc/passwd第三列大于10的,查看15行。awk支持条件判断语句 awk -F: '{if ($3=10){print}}' /etc/passwd。

2023-08-09 16:25:35 51

原创 shell第六章shell sed工具

sed:类似于vim,就是一个文本编辑器,按行进行编辑以及处理。grep sed awk:文本三剑客,都是针对文件内容的行进行处理。sed的主要作用就是对文本内容进行增删改查。sed可以支持正则表达式,支持扩展正则表达式。sed的原理:读取,执行,显示三个过程。读取:读取文本内容之后,读取到的内容存放到临时的缓存区,模式空间。执行:在模式空间,根据读取的文本内容,按行执行,除非指定行号,否则会遍历所有行,依次执行,从上往下执行。

2023-08-09 16:24:02 38

原创 shell第五章shell正则表达式

paste:文件合并paste a b 和cat a b 之间的区别paste是左右合并cat是上下合并文本处理有三剑客:grep,sed和awk正则表达式:由一类特殊字符以及文本字符所编写的一种模式,处理文本当中的内容,其中的一些字符不表示字符的字面含义,表示控制或者通配的功能。命令结果,文本内容都可以进行匹配。通配符:匹配文件名和目录名,不能匹配文件的内容。通配符:*匹配任意一个或者多个字符?匹配任意一个字符[] 匹配范围内的任意单个字符[0-9] [a-z] [A-Z]

2023-08-09 16:22:12 100

原创 shell数组

同一种,也可以是不同的数据类型组成的元素集合。数组的最大作用:可以一次性定义多个变量如何定义数组,在shell中创建数组的方法ky30:定义数组的名称(): 定义数组的元素,多个元素用空格隔开echo ${ky30[*]} :打印当前数组中包含的所有表示数组的下标索引数组中当中的,元素位置的起始下标索引都是0怎么查看数组的长度,也就是查看数组当中有多少个元素echo ${#ky30[*]} :获取数组大的长度获取数组下标的元素值:echo ${ky30[0]}:索引下标从零开始。

2023-08-09 16:21:47 41

原创 shell第三章shell编程与循环语句与函数

1,循环体,代码的总结构2,循环条件,当循环条件满足时,循环体内的代码才会执行,条件不满足,循环结束遍历的定义:对数据结构中的每个元素都进行一次访问的过程。操作以及输出。1,重复执行代码。2,简化程序得到逻辑,提高程序的可读性和可理解性,降低了代码出错的可能性。3,提高了代码的重复利用率。4,提高了效率,循环可以自动化的让程序执行,减少了人工的干预,就是提高了效率。for循环语句特点:1,for循环一般用于已知次数的循环。2,语法结构:for + 变量名in+取值范围。

2023-08-01 14:41:27 50

原创 shell第二章shell编程之条件语句

[]]:功能更强大,可以直接引用变量,不需要加引号,不会出现歧义,支持模式匹配,支持正则表达式。当我们直接引用变量的时候,最好用引号引起来,使用特殊符号的时候,需要谨慎使用。[]和[[]]都是测试的语句,都可以判断真假,但是二者之间是有区别的。-x:测试当前用户是否有执行权限(只看所有者的权限)-a或者&&:逻辑与,前后条件都要满足。用法:test +条件测试的表达式。-r:测试当前用户是否有读取权限。-w:测试当前用户是否有写的权限。-e:测试目录或者文件是否存在。-d:测试目录是否存在。

2023-07-13 18:24:50 48

原创 Shell第一章Shell编程规范与变量

2,tcsh :整合了csh的功能,可以提供比csh更强大的功能3,csh :类似c语言的shell4,nologin :禁止用户登录扩建语言,动态语言,也是一种编程语言,控制软件应用程序,脚本都是以文本的形式保存,只在调用时才会进行解释或者编译,按行执行,执行文本当中的特定命令1,不要使用Linux系统的操作命令,或者系统命令来指定变量名2,不要用中文指定变量名3,不能使用特殊符号开头,可以用_开头4,默认原则:最好使用名称的英文来指定变量名。

2023-07-10 19:44:13 87

空空如也

空空如也

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

TA关注的人

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