- 博客(110)
- 收藏
- 关注
原创 kubernetes二进制部署2之 CNI 网络组件部署
目前比较常用的时flannel和calico,flannel的功能比较简单,不具备复杂的网络策略配置能力,calico是比较出色的网络管理插件,但具备复杂网络配置能力的同时,往往意味着本身的配置比较复杂,所以相对而言,比较小而简单的集群使用flannel,考虑到日后扩容,未来网络可能需要加入更多设备,配置更多网络策略,则使用calico更好。vxlan在内核当中实现,当数据包使用vxlan设备发送数据时,会打上vlxan的头部信息,在发送出去,对端解包,flannel.1网卡把原始报文发送到目的服务器。
2023-08-14 16:40:56
913
原创 ansible剧本之role角色模块
roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种机制。roles一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。主要使用场景代码复用度较高的情况下。假如我们现在有3个被管理主机,第一个要配置成httpd,第二个
2023-08-14 16:31:07
804
原创 ansible的playbook剧本
vars: #定义变量- groupname: mysql #格式为 key: valuetasks:group: name={{groupname}} system=yes gid=306 #使用 {{key}} 引用变量的值copy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txt #在setup模块中可以获取facts变量信息#在命令行里定义变量- name: #指定play名称hosts: #指定主机组。
2023-08-14 14:44:57
733
原创 kubernetes中的kubectl命令详解
/为deployment的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort。externalName:将service名称映射到一个DNS域名上,相当于DNS服务的CNAME记录,用于让Pod去访问集群外部的资源,它本身没有绑定任何的资源。也可以是资源类型,如pod;//处于动态监听 pod 状态,由于使用的是滚动更新方式,所以会先生成一个新的pod,然后删除一个旧的pod,往后依次类推。
2023-08-09 19:32:47
912
1
原创 ansible常见模块的运用
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。
2023-08-03 16:22:04
1078
原创 Kubernetes详细概述
K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。作用:用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。由来:K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。
2023-08-03 09:34:22
590
原创 简单的Kubernetes集群二进制方式部署1
k8s集群master01:192.168.52.150 kube-apiserver kube-controller-manager kube-scheduler etcdk8s集群node01:192.168.52.140 kubelet kube-proxy dockerk8s集群node02:192.168.52.130etcd集群节点1:192.168.52.150 etcdetcd集群节点2:192.168.52.140etcd集群节点3:192.168.52.130。
2023-08-02 23:05:24
285
原创 Consul的容器服务更新与发现
服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。
2023-07-28 16:59:18
220
原创 【Docker】安全及日志管理
目前常用的 Docker 版本都支持 Docker Daemon 管理宿主机 iptables 的,而且一旦启动进程加上 -p host_port:guest_port 的端口映射,Docker Daemon 会直接增加对应的 FORWARD Chain 并且 -j ACCEPT,而默认的 DROP 规则是在 INPUT 链做的,对 docker 没法限制,这就留下了很严重的安全隐患。如果公司使用的不是自己的镜像源,需要使用 Docker 镜像安全扫描工具 Clair,对下载的镜像进行检查。
2023-07-27 19:42:45
1306
1
原创 Docker--harbor私有仓库部署与管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
2023-07-27 19:15:27
704
原创 基于Docker-compose创建LNMP环境并运行Wordpress网站平台
Docker-Compose将所管理的容器分为三层,分别是项目(project)、服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件组成一个项目,若无特殊指定项目名即为当前目录名。一个工程当中可包含多个服务,每个服务都包含一个名称、镜像、端口映射、环境变量、挂载点等信息。
2023-07-26 19:30:28
1099
1
原创 使用dockerfile来配置lnmp并运行wordpress以及镜像缩小体积
准备php.ini php-fpm.conf www.conf 三个文件,原理同上。在目录下准备nginx的配置文件,以便第一步最后的COPY操作。访问http://192.168.52.150:32768。在宿主机或者进入容器内修改都可以,因为已经挂载过了。创建mysql容器,并进入数据库进行授权操作;在nginx目录下准备html目录用来挂载。创建nginx:jiang容器。创建个nginx容器进行测试。构建php:jiang镜像。这里是启动容器复制过来。
2023-07-26 17:02:13
569
原创 Docker数据管理和网络通信 dockerfile
因为对于精简的OS,rootfs可以很小,只需要包含最基本的命令、工具和程序库就可以了,因为底层直接用宿主机的kernel,自己只需要提供rootfs就可以了。但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。
2023-07-21 14:02:49
161
原创 Docker网络,cgroup资源控制
直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错//创建自定义网络#可以先自定义网络,再使用指定IP运行docker#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。
2023-07-20 19:14:37
367
原创 Docker 基本管理
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。
2023-07-19 16:58:37
725
原创 ceph存储的应用
提供了user、subuser、bucket和object,其中的user对应于S3的user,而subuser则对应于Swift的user,不过user和subuser都不支持为bucket提供名称空间,因此不同用户的存储桶不允许同名;快照分层支持用快照的克隆生成新镜像,这种镜像与直接创建的镜像几乎完全一样,支持镜像的所有操作。对象存储(object storage)是非结构数据的存储方法,对象存储中每一条数据都作为单独的对象存储,拥有唯一的地址来识别数据对象,通常用于云计算环境中。
2023-07-17 19:44:30
249
原创 Ceph存储简介和安装
存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。
2023-07-16 20:02:15
932
原创 zookeeper和kafka与EFLFK集群
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据领域的实时计算以及日志收集。
2023-07-16 19:37:03
655
原创 Logstash中的四大插件
语法:(?举例:捕获10或11和长度的十六进制数的queue_id可以使用表达式(?filter {grok {如果表达式匹配失败,会生成一个tags字段,字段值为 _grokparsefailure,需要重新检查上边的match配置解析是否正确。
2023-07-12 19:21:00
606
原创 ELK 企业级日志分析系统
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式。
2023-07-12 19:10:07
1567
原创 zabbix代理服务器,高可用,监控java,windows,SNMP
默认情况下,HA 是关闭的。【Interfaces】点击添加 客户端,【IP地址】输入 192.168.52.246,【端口】输入 10050。【Interfaces】点击添加 JMX,【IP地址】输入 192.168.80.30,【端口】输入 12345。【Interfaces】点击【添加】选择 SNMP ,【IP地址】输入 127.0.0.1,【端口】输入 161。【Interfaces】选择 客户端,【IP地址】输入 192.168.80.30,【端口】输入 10050。
2023-07-07 16:57:43
845
原创 zabbix的客户机,监控内容,自动发现
案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 5 个,超过 5 个就发出报警信息vim /etc/zabbix/zabbix_agent2.conf #可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中 281 行 Include = /etc/zabbix/zabbix_agent2.d/*.conf #自定义监控项的格式如下 321 行 # Format: UserParameter=<key>,<shell command>
2023-07-06 17:43:13
659
原创 Zabbix安装
利用一个优秀的监控软件,我们可以:●通过一个友好的界面进行浏览整个网站所有的服务器状态●可以在 Web 前端方便的查看监控数据●可以回溯寻找事故发生时系统的问题和报警情况。
2023-07-05 16:56:50
264
原创 rsync 远程同步
在Linux内核中,默认的inotify机制提供了三个调控参数:max_queue_events(监控事件队列,默认值为16384)、max_user_instances(最多监控实例数,默认值为128)、max_user_watches(每个实例最多监控文件数,默认值为8192)。rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
2023-07-05 14:09:14
151
原创 nginx缓存配置
●keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b。在/usr/share/nginx/html目录下配置静态页面。
2023-07-04 19:42:59
1117
原创 supervisor管理
用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制。使用yum安装的supervisor会在/etc/会生成一个supervisor.conf文件及一个supervisor.d文件目录。supervisorctl restart nginx #重启nginx。supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。supervisor常用命令。
2023-07-04 08:58:46
153
原创 Squid 代理服务器
通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
2023-07-03 19:58:51
179
原创 redis配置与优化
关系型数据库:实例–>数据库–>表(table)–>记录行(row)、数据字段(column)非关系型数据库:实例–>数据库–>集合(collection)–>键值对(key-value)非关系型数据库不需要手动建数据库和集合(表)。Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。
2023-06-28 17:01:41
175
原创 mysql的mmm高可用
授权的用户包括一个 mmm_monitor 用户和一个 mmm_agent 用户。innodb_flush_log_at_trx_commit=1 #“双1设置”,每次事务提交时MySQL都会把缓存的数据写入日志文件,并且刷到磁盘中去。---------------------- 搭建 MySQL 多主多从模式 -------------------------------------------- 安装配置 MySQL-MMM ----------------------
2023-06-28 17:00:17
235
原创 mysql的MHA高可用
MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。
2023-06-27 18:45:55
283
原创 MySQL 主从复制与读写分离
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
2023-06-26 19:35:59
279
原创 musql数据库存储过程
存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)#仅当存在时删除,不添加 IF EXISTS 时,如果指定的过程不存在,则产生一个错误。#查看某个存储过程的具体信息。
2023-06-23 17:37:05
410
原创 SQL高级语句2
视图模式能不能修改内容要看情况,即as后面的select语句中所的出来的字段不能被修改过,就可以更改数据,但要是被修改过(例如:聚合函数处理,group by 汇总聚合)就不能修改数据。2.IS NULL 或者 IS NOT NULL,是用来判断字段是不是为 NULL 或者不是 NULL,不能查出是不是无值的。语法:SELECT “字段” FROM “表名” WHERE “字段” REGEXP {模式};right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录。
2023-06-21 16:48:13
1671
原创 高级SQL语句1
语法:SELECT “字段1”, SUM(“字段2”) FROM “表格名” GROUP BY “字段1” HAVING (函数条件);语法:SELECT “字段” FROM “表名” WHERE “字段” BETWEEN ‘值1’ AND ‘值2’;‘ABC%’: 所有以 ‘ABC’语法:SELECT “表格別名”.“字段1” [AS] “字段別名” FROM “表格名” [AS] “表格別名”;语法:SELECT “字段” FROM “表名” WHERE “字段” IN (‘值1’, ‘值2’, …
2023-06-20 19:30:09
257
原创 mysql数据库备份和恢复和日志管理
二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT。InnoDB存储引擎的数据库在磁盘上存储成三个文件:db.opt(表属性文件)、表名.frm(表结构文件)、表名.ibd(表数据文件)。当备份文件中只包含表的备份,而不包含创建的库的语句时,执行导入操作时必须指定库名,且目标库必须存在。#仅恢复到操作 ID 为“623”之前的数据,即不恢复“user4”的数据。
2023-06-20 14:23:35
328
原创 【MySQL数据库】事务和存储引擎
悲观锁会锁定数据,其他操作不会影响到被锁的数据,但是普通的查询没有影响,需要用到 for update语句实现乐观锁的方法是在数据表中增加一个version字段,每当数据更新的时候这个字段执行加1操作。这样当数据更改的时候,另外一个事务访问此条数据进行更改的话就会操作失败,从而避免了并发操作错误。
2023-06-18 13:08:48
511
1
原创 MySQL数据库索引
可以是单列上创建的索引,也可以是在多列上创建的索引。需要满足最左原则,因为 select 语句的 where条件是依次从左往右执行的,所以在使用 select 语句查询时where条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。·设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要的原因。
2023-06-18 12:43:29
627
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人