自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s之rbac安全机制

K8S中的安全机制,分布式的集群管理工具,就是容器编排。安全机制的核心:集群内外部通信都需要靠apiserver进行调度所有的安全机制都是围绕apiserver来设计的1、认证Authentication token2、鉴权Authorzation:在集群当中权限的控制3、准入控制admission control:能做哪些或者说是在哪里做。

2024-09-13 15:27:00 644

原创 K8s中HPA自动扩缩容及hml

缩容的时候为了保证pod的资源突然又变大了,可以继续维持pod的数量,在一定时间内pod占用的资源维持在较低的比率,然后开始慢慢缩容。通过打包的方式,把所有需要的yaml文件集合起来,然后一键部署;limitRange:只要是创建在这个命名空间的pod,都会根据limitRange的配置来对所有的pod进行统一的资源限制(应用比较少)2.前面讲了手动扩容的方法:对pod的数量进行扩缩容、针对控制器创建的pod、pod的副本数量可以通过静态命令行及yam脚本进行扩缩容。3.部署hpa的依赖环境。

2024-09-12 17:27:46 342

原创 k8s独立组件ingress,七层转发

1.ingress:核心是对外提供访问2.ingress---根据service的名称选择service----service把请求根据匹配的标签转发到pod3.ingress支持http及httpsnginx-ingress-controller------主流traefik-ingress-controller------目前再推广5.最常用的是deployment+NodePort6.对外访问用:Daemonset+hostnetwork。

2024-09-11 15:44:01 937

原创 k8s的配置管理

1》service-account-token:k8s集群自建的,用来访问APIserver的secret,pod默认使用这种secret和APIserver进行通信,默认自动挂载到pod/run/secrets/kubenets.io/serviceaccount这个目录下。定义两个环境变量,名称分别叫user1、password1,user1及password1的值由secret2中的username和password文件给的,所以user=username,password1=password。

2024-09-09 17:52:49 1137

原创 K8s中pod控制器

4.statefulset:有状态的部署,pod的名称是固定的,一旦创建永久不变,即使增加副本数,也是有序的递增;delete pod也是相当于重启pod,只不过pod的名称不在发生变化。对于基于控制器创建的pod,delete pod相当于对pod进行了重启,并不会删除pod;需要在每个节点都部署,或者是需要在后台运行的pod,相当于elk,daemonset不能指定副本数,因为它本身就会在每个节点部署一个pod。二.pod控制器的类型:基于控制器创建的pod,只删除pod相当于重启pod。

2024-09-06 13:46:55 683

原创 K8s的Pv和Pvc就是为了pod数据持久化

2.pvc:用户对存储资源的请求,定义了需要存储的空间大小,以及对存储空间的访问模式,有了pvc请求之后,再和pv进行匹配,匹配到了之后进行绑定,绑定成功之后就可以使用pv的存储空间。Retain:默认策略(手动),就是保留,虽然pvc被删除,但是pv还是处于released的状态,及时恢复到available状态,上一个挂载的数据也不会丢失。1.配置定义pvc请求的详细情况--------->匹配pv-------->绑定-------->使用------->释放------>回收pv。

2024-09-05 17:31:32 1177

原创 k8s调度、污点、容忍、不可调度、排水、数据卷挂载

nodeName:指定节点名称,用于将Pod调度到指定的Node上,不经过调度器。nodeSelector:在 Pod 定义文件的 spec 下的 nodeSelector 字段中设置一个标签选择器,在 Pod 调度的时候,只有具有这些标签的 Node 才会被考虑用来运行这个 Pod。spec参数设置:指定了节点,在参数中设置了nodeName,指定了节点的名称,会跳过scheduler的调度策略,这个规则是强制匹配spec参数设置:节点自定义标签:#查看节点的标签。

2024-09-04 17:32:43 1068

原创 pod进阶

启动探针(startupProbe):在容器启动时根据条件来判断容器是否启动成功,如果有启动探针和其它探针并列,要先启动启动探针,只有启动探针执行成功后续的探针才会执行,启动探针如果启动失败则整个容器判定为失败,pod也会进入失败状态;在整个容器的生命周期当中,只有启动探针在启动时执行,执行成功之后后续不再执行。exec方法:进入容器内执行命令,命令的返回码是0就是成功,非零都是失败,使用场景是在容器内使用自定义命令来检测容器内的健康状况,判断关键配置文件是否存在,依赖环境是否完整。主要用于web容器。

2024-09-02 21:33:32 802

原创 k8s中pod基础及https密钥、horber仓库

运行过程中pause不参与,只在删除的时候参与,删除镜像的过程中回收容器的资源和容器内的僵尸进程,完了通知kubelet回收pod,再通知APIserver保存到etcd。2.初始化容器:这种初始化容器包含再pod内部的,属于pod的组成部分之一,而且扮演着pod的生命周期当中的启动环节;https:加密的http 端口443,tcp协议,建立连接和普通的tcp一样的都是三次握手和四次挥手,但在原来三次握手的基础上多出一次ssl或tls握手,多次一次的握手过程为了建立安全的加密通信通道。

2024-08-30 17:19:21 871

原创 K8S声明式的管理方式

如果nginx端口是默认的80,ports可以不加,因为写了也无法改变容器的端口,容器的端口是由dockerfile决定的;template:定义业务模板,上面定义了三个副本,所有pod的属性都会和template的设置保持一致。metadata:定义创建资源的元数据信息、资源的名称--pod的名称、命名空间的名称、pod标签。spec:配置deployment资源对象需要的参数属性,副本数,匹配的标签以及容器的重启策略。pod和容器是分开的也是合并的,镜像定义容器,pod不能改变镜像。

2024-08-29 17:29:14 733

原创 kubectl陈述式资源管理方式、声明式资源管理

1.pod的IP地址随着pod的生命周期有可能会发生改变(例如扩容和缩容),但内部访问我们通过pod的ip可以直接访问,外部访问 就引申出一个pod对外暴漏端口的概念service,它也可以和内部pod容器做一个映射,这种关联映射不受pod的IP地址变化的影响,从而达到外部对pod的访问。使用七层负载,对内单机访问。主要用来pod的更新时使用,逐步的引入新的pod逐步的减少旧的pod。3..service类型及工作原理 :先是宿主机端口------service端口-------pod里面的容器端口。

2024-08-29 11:14:05 2168

原创 【K8S 基本概念】Kubernets的架构和核心概念及集群搭建

namespace:是一种资源隔离上的方式,逻辑上的隔离,项目越来越多,集群越来越大,通过命名空间把资源分配到各个命名空间,每个命名空间之间资源不共享,使用的是分配的资源,命名空间在集群当中是唯一的,名字不能重复;2》etcd:k8s内部的存储服务,也是分布式的键值存储系统,存储了k8s集群的配置和用户配置,以及集群内部服务的信息;1.作用:用于自动部署扩展以及管理容器化部署的应用程序,半开源,k8s的底层是基于谷歌go语言开发的,负责自动化运维管理多个容器化的应用的集群,容器编排框架的工具。

2024-08-28 09:49:03 958

原创 使用Harbor搭建Docker私有仓库

4.harbor特点:通过角色权限进行控制,用户和仓库都是基于项目进行组织,不同的用户在不同的项目中拥有不同权限;core service:harbor的核心功能,对用户进行授权,检测仓库内镜像的变化以及token(根据不同的权限基于不同的token),token就是保存用户的身份信息以及账户和密码。porxy:nginx的前端页面是nginx做的,在nginx的配置中做了反向代理,在浏览器不同的请求转发到不同的容器内。一、harbor:开源的企业级的docker仓库软件,仓库就是保持镜像的。

2024-08-20 15:39:22 397

原创 使用Docker-compose一键部署Wordpress平台

docker:主要服务于单节点。本质就是在yaml格式的docker-compose配置模板文件里定义多个容器的启动参数和依赖关系,并使用docker-compose根据这个模板文件的配置启动和管理容器集群。docker-compose是基于python开发的,能运行docker的平台,都能用docker-compose编排管理容器。docker-compose:命令的开头,使用docker-compose进行容器编排。-f:使用特定的compose模版文件,一般都用docker-compose.yml。

2024-08-19 16:02:07 492

原创 Dockerfile搭建LNMP

3.docker:单节点部署,在一台机器上部署,跨了机器容器无法通信;做高可用只能在节点上增加同一服务的容器数量。技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的。1.公司在实际的生产环境中,需要使用。

2024-08-17 17:17:30 381

原创 Dockerfile

RUN:在基础镜像上先运行的执行命令,然后把运行结果整合到新镜像当中,但是注意的是RUN就是一个镜像的分层,RUN越多分层就越多,镜像就越大,为了控制镜像的大小,多个RUN尽可能的写在一个RUN里面。运行容器时,整个的根文件系统就会整个被使用,作为应用的运行的环境。做为容器启动时执行命令的语句,一般情况下二者是通用的,但是在传参的情况下需要加上CMD,如果没有特殊操作(传参的情况下),写一个CMD或者ENTRYPOINT即可,二者不要同时存在。bootfs:引导文件系统,启动根系统时需要加载的核心文件。

2024-08-15 17:31:58 693

原创 docker数据卷、资源控制

3.容器互联:容器与容器之间专门建立一条网络通信,容器与容器之间通过通道相互通信,建立通道之后,容器之间可以通过容器名进行通信,容器之间不需要暴露端口,也不依赖宿主机IP,再容器内部可以通过容器名直接访问另一个容器,简化容器之间的连接配置。1.容器和宿主机之间数据共享----挂载卷----容器内的目录和宿主机的目录进行挂载。2.容器与容器之间进行数据共享:容器之间会需要共享数据,最简单的方法就是使用数据卷容器,可以提供容器内的一个目录,专门用来供其它容器进行挂载。

2024-08-14 18:31:08 811

原创 docker网络

1.桥接模式:是docker的默认模式,当我们部署好docker服务,启动之后就会创建一个虚拟网桥就是docker0,这是一个虚拟的网络设备,类似于交换机,每一次运行容器之后,docker0就会从网段当中分配一个IP地址给这个容器,容器与主机之间通信是通信桥接模式进行,容器与容器之间通信是多个容器都在同一网段,都在同一网桥,可以通过自己的IP地址进行通信。docker网桥是宿主机虚拟出来的,并不是真正的网络设备,外部设备是没办法通过寻址找到的,也是客户端是无法直接访问容器的IP地址;

2024-08-13 14:23:42 619

原创 docker基本管理和应用

1.docker是什么:一个开源的应用容器引擎,基于go语言开发的,docker运行在linux的容器化工具,可以理解为轻量级的一个虚拟机。鲸鱼-------------宿主机 集装箱就是---------------一个一个独立运行的容器,而且是相互隔离的容器,一个容器就是一个独立的应用程序。1.镜像:镜像是创建容器的基础,类似于虚拟机的快照,通过这个快照可以快速的创建一个容器;拉取镜像-----创建容器----修改镜像-----重启容器-----停止容器-----删除容器----删除镜像。

2024-08-12 17:32:51 948

原创 zabbix的自动发现和注册、proxy代理和SNMP监控

二、zabbix通过代理服务器添加主机:分布式监控,代理服务器的作用就是分担 server 的集中式压力;先有服务器,再有模版,模版当中设置应用集,模版当中设置应用集,再应用集中配置监控项,在监控项之后配置触发器,最后配置图形(可选项)zabbix proxy(代理服务器):代理服务器也要安装数据库,保存客户端的数据,然后再发送给服务端(代收器)zabbix客户端主动的和服务端联系,将自己的地址和端口发送给服务端,实现自动添加监控主机。snmp:简单网络管理协议,用来监控网络设备,可以监控交换机和路由器。

2024-08-09 16:24:01 450

原创 zabbix监控软件

zabbix_proxy:代理服务器,是安装在监视的目标系统上的软件组件,可以代替zabbix_server收集数据,然后由代理软件再传送给服务端zabbix_server。zabbix_sender:发送器,可选组件,可以将客户端的数据自定义操作之后发送到zabbix服务器。2.zabbix可以提供各种类型的监控模板,保证服务器的正常运行,灵活的通知机制,可以让管理员快速定位。zabbix_get:可选组件,提供命令行的工具(zabbix的命令行)。添加数据库用户,以及 zabbix 所需的数据库信息。

2024-08-08 17:47:47 934

原创 CEPH分布式存储系统

1.对象、块、文件系统都需要object,存储的数据就会被分成多个object,分成之后每个数据都是一个object id,每个object的大小是可以调整的,默认是4M,ceph的最小存储单位。5.RADOS:分布式存储系统,ceph所有的存储功能都是基于rados实现的,高性能也是基于rados实现的,它是所有一切的底层,也是整个ceph集群的核心。4.managers也是做为ceph的守护进程,跟踪集群的运行时间的指标和ceph集群的状态(状态指的是存储的利用率、性能指标和系统的负载)

2024-08-07 18:00:44 848

原创 rsync远程同步+inotify监控

在远程同步任务中,负责发起rsync同步操作的客户机称为发起端(服务端),而负责响应来自客户机的rsync同步操作的服务器称为同步源(客户端)。rsync --delete:删除目标位置有,但是原始文件没有的文件(相同的数据不作操作)rsync -r:递归模式,目录包含子目录里面的所有文件。rsync -a:归档模式,可以保留文件的权限、属性等等。rsync -p:保留文件的权限标记(所有者和所在组)rsync -g:保留文件的所在组(管理员)rsync -o:保留文件的所有者(管理员)

2024-08-06 17:24:16 281

原创 zookeeper集群+kafka集群

消费者订阅主题,获取全量的消费者的消费消息(默认模式),也可以从执行的分区获取消息(代码完成,一般不用);分区还有备份的作用,我们在创建主题时创建分区,创建分区时要指定副本数,分区和指定的集群机器数量一般是保持一致的,副本就是备份分区当中的消息,最少要2个,互为备份。有一定的冗余性,挂了一台可以继续使用;服务器B启动之后发起投票选举,服务器B首先也是投自己一票,服务器A和B这时会做一个比较,这时会根据myid的大小进行选举,myid小的就会投向大的一方,当B选举后C启动后就会自动追随,A也会成为追随者。

2024-08-06 13:32:55 722

原创 ELK日志系统

一、ELK概述。

2024-08-01 15:14:55 905

原创 Redis主从复制、哨兵模式、集群

从节点进行主节点数据的复制也可以查;哨兵模式主从切换不是按照权重进行切换的,是按照投票进行的,主挂了(宕机),其它从服务器投票进行选举,算法为Raft,选一个离当前时间点更新最近的从变成主。redis主从复制与mysql主从复制类似,主可以写,写入主的数据通过RDB方式把数据同步到从服务器,从不能更新到主,也是哨兵模式的基础。把每两台服务器最为主从模式,形成一个大的主从的集群,它解决了哨兵的写操作的负载均衡,它较为完善的高可用方案。二、主从复制的流程:有主节点和从节点,数据的复制是单向的,由主复制到从。

2024-07-31 16:11:52 402

原创 Redis高可用之持久化,以及reids的性能管理

1.AOF持久化是将redis的每一次读、写、删除命令记录到一个单独的以.aof结尾的文件(查询操作不记录,查询操作是由主进程记录),当redis重启时,再次执行AOF文件中的命令来恢复数据。AOF重写是把redis进程内的数据转化为写的命令,同步到新的AOF文件当中(不会额外的生成新的文件,只是在原内容中进行压缩)。在实际工作中,会关闭自动的文件重写。RSS是向系统申请的内存空间,redis占用物理空间额外的开销比例,比例要越低越好,表示redis实际占用的内存和向系统申请的内存越接近,额外的开销越低。

2024-07-30 16:34:01 1095

原创 Redis缓存中间件及redis安装部署、常用命令

缓存通常位于数据的访问路径上,数据的必经之路,可以不用直接访问原始数据的情况下,可以直接获取数据。set当中的元素类型是唯一的,可以跟踪一些唯一性的数据,如访问微博的用户名,只要把对应的名称写入redis,set会自动保存他的唯一性,方便下一次访问。2.所有的数据库都不支持高并发,一旦访问量激增,数据库很快就会崩溃,所以redis把客户访问的内容缓存到redis里面,从而减轻数据库的压力。数字排名:0-15;也是redis最基本的类型,最大能存储512MB的数据,可以存储任何数据,数字,文字,图片等等。

2024-07-29 17:17:16 726

原创 Mysql的存储过程

out输出参数,存储过程向调用者传出值,可以是多个值;inout 输入输出,既可以表示存储过程向调用者传出,也可以表示用户向存储过程传入值。存储过程的语法:delimiter $$ delimiter表示开始和结束的语法,$指的是标志位,以什么为开头或者以什么为结尾,可以自定义,但是不要汉字、数字、特殊字符开头。一、存储过程的概念:完成特定功能的sql语句的集合,把定义好的sql集合在一个特定的sql的函数当中;存储过程的作用:执行速度比sql语句执行速度更快,执行效率也更高;

2024-07-25 17:05:15 328

原创 Mysql高可用架构之MHA

根据vip地址所在的主机,确定主备。主和备不是优先确定的,主从复制的时候就确定了主,备是在MHA的过程中确定。master_binlog_dir=/usr/local/mysql/data/         #master保存binlog的位置,这里的路径要与master里配置的binlog的路径一致,以便MHA能找到。master_ip_failover_script=/usr/local/bin/master_ip_failover  #设置自动failover时候的切换脚本,也就是上面的那个脚本。

2024-07-24 15:36:43 893

原创 Mysql的主从复制(重要)和读写分离(理论重要实验不重要)

介乎于异步和全同步之间,主库更新完事务之后,也是同步到从库,同步完成之后有一个等待时间,等待时间是tcp/ip的往返时间,一般为5毫秒左右。6. 创建从服务器的用户名并设置密码,给予从服务器连接主服务器的权限,最后查看主服务器的同步位置点(status),master-bin.000001为二进制同步文件,857为同步位置点。#控制innodb存储引擎缓冲池的大小,设置的数值越高,可以提高他的innodb的性能,更多的数据和索引都可以缓存在内存中。2.主从复制的特点:只能主复制到从,从不可以复制到主。

2024-07-23 15:26:05 1209 1

原创 Mysql高价语句

8.子查询:内查询,嵌套查询,selsect语句当中有嵌套了一个select,嵌套的select才是子查询,查询的时候是先执行子查询语句,外部的select再根据子条件的结果进行过滤查找;左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配,匹配左表的所有,以及右表中符合条件的行,不符合的显示null。5.表和列的别名:因为在实际工作中,表的名字和列的名字可能会很长,书写起来不太方便,多次声明表和列时完整的展示太复杂,设置别名可以使书写简化,可读性增加,简洁明了。是多表数据的集合体。

2024-07-22 17:39:53 956 1

原创 Mysql数据库的索引、事务和存储引擎

行级锁定,会被行锁了禁止操作,尤其是模糊查询,在like进行查询时,会进行全表扫描,在扫描的过程中会锁定整个表,如果没有创建索引的列,进行查询时,也会锁定整个表,使用的时索引列,锁定条件的行,进行行锁定。I(isolation)隔离性:并发环境中不同的事务同时操作相同的数据时,每个事务都有自己完整的数据空间,对数据的修改所发生的并发事务都是隔离的,每个事务之间都是独立,一个用户的事务不会被其它事务所干扰的。如果没有索引,innodb会使用默认的隐藏索引来对记录进行加锁,加了索引就是锁行,不加索引就是锁表。

2024-07-19 11:02:04 912

原创 Mysql数据库的概念及sql语法和规范+数据库的用户管理

关系型数据库:mysql oracle postgresql,关系型数据库是一张二维的表格,表里面有行和列,行记录的是对象的信息和字段的属性,列记录的是对象和字段,行+列就组成一张表。只有关系型数据库才有表。创建表:一条数据库的语句是连贯的,以分号为结尾表示一条完整的sql,但是太长,不方便阅读和理解,我们可以对一条语句进行分行的写法,关键词不能跨行。创建外键:用来建立表于表之间的关系,确保外键中的值于另一个表的主键值匹配,保证数据引用的完整性,多表联查,不要超过三张表,会降低查询效率。

2024-07-16 22:28:30 1045

原创 keepalived高可用集群

设置一台主调度器和一台备调度器,在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作,主调度器恢复功能之后,主继续做为集群的入口,备继续处于冗余状态;根据组播地址244.0.0.18进行通信,主和备之间发送报文,确定对方是否存活,根据优先级的大小来确定主和备的位置,故障切换,如果主挂了,备继续工作,主恢复了,备继续待命;主服务器现在的状态。主的优先级较高,备的优先级低,一旦开启服务器,优先级高的会自动抢占主到的位置。

2024-07-11 22:36:46 429

原创 LVS集群的DR模式

3.DR模式下,lvs也是维护虚拟的IP地址,所有的请求都是发送到这个vip,既然是走二层转发,当客户端的请求到达调度器之后,根据负载均衡的算法选择一个RS,修改vip服务器的目的mac变成RS的mac地址,RS处理完请求之后,根据客户端的源MCA地址直接把响应发送到客户端即可,不需要走调度器,调度器的压力相对较小;真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

2024-07-10 20:15:26 957

原创 LVS集群及其它的NAT模式

NAT模式的特点:地址转换,在nat模式下,lvs会将来自客户端的请求报文中的目标IP地址和端口修改为lvs内部的IP地址和端口,然后把请求转发到后端服务器,响应之后的结果返回客户端的过程中,响应报文也要经过lvs处理,把目标ip和端口修改成客户端的IP地址和端口。-----------当天事必须当天解决,没有解决之前,人是不可以离开的,解决完之后必须生成报告备案。DS:lvs的主服务器,也就是调度器,相当于nginx的代理服务器,是lvs集群的核心,调度器就是用来接受客户端的请求转发到后端的服务器。

2024-07-09 17:19:44 685

原创 Tomcat的负载均衡、动静分离

一、如何tomcat和nginx负载均衡及动静分离:2台tomcat,3台nginx来实现。关闭两台tomcat的防火墙及安全机制:systemctl stop filwalld。进入tomcat目录的webapps中,创建test。2.配置其中nginx1和nginx2:内容完全一样。1.首先设置tomcat1和tomcat2服务器。3.配置代理服务器nginx3。

2024-07-08 21:47:13 385

原创 nginx的正向代理和反向代理

4.ip_hash*怎么做会话保持:ip_hash根据算法计算客户端的ip地址的hash值,然后将请求转发到相应的服务器,在第一次访问网址之时,就会计算出这个hash值,会把请求分到一个服务器,但是下一次客户端如果使用相同的ip地址就不再分配到其它的服务器,除非后台服务器的算法变更,或者后台的服务器数量发生了变化,这时才会更改访问的服务器,访问语法就是ip_hash;http模块配置的都是七层,七层是应用层,走的是http协议,可以对请求进行解析和处理,因此七层代理走的是用户态,应用协议和程序功能,;

2024-07-08 11:49:34 1497

原创 Tomcat的服务部署于优化

一、tomcat是一个开源的web应用服务器,nginx主要处理静态页面,那么静态请求(连接数据库,动态页面)并不是nginx的强项,动态的请求会交给Tomcat进行处理,tomcat是用java代码写的程序,运行的是java的web应用程序。tomcat的并发处理能力不强,大项目不适应tomcat做为转发动态的中间件,一般是小项目才使用tomcat。nginx——转发动态请求——Tomcatphp处理的是.php文件nginx处理的是.html文件tomcat处理的是.jsp文件。

2024-07-08 11:45:50 842

空空如也

空空如也

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

TA关注的人

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