自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s资源管理之声明式管理方式

字段: <[]Object> 列表类型的对象 字段: - 二级字段: 三级字段 - 二级字段: 字段: <map[string]string> 映射:值可能是一个或多个键值对类型的值 字段: key1: value1 key2: value2 key3: value3。2)查看现有的资源配置获取:kubectl get -n <命名空间> <资源类型> <资源名称> -o yaml > XXX.yaml。kubectl edit -n <命名空间> <资源类型> <资源名称> #在线修改资源配置。

2024-02-28 09:00:08 1233

原创 k8s的资源管理

假设期望副本数是3,那么滚动更新时能够创建的副本数是 3 * 25% = 0.75 再向上取整为 1,能够销毁的副本数向下取整为 0 假设期望副本数是10,10 * 25% = 2.5 向上取整为 3 向上取整为 2 整个滚动更新过程中Pod副本数始终处在 (10-2)<= Pod副本数 <= (10+3)之间。--force --grace-period=0 #grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅退出,0表示立即终止pod。

2024-02-28 08:52:30 10136

原创 k8s的adm方式部署

kubectl需经由API server认证及授权后方能执行相应的管理操作,kubeadm 部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通过默认的 “$HOME/.kube/config” 的路径进行加载。--apiserver-advertise-address:apiserver通告给其他组件的IP地址,一般应该为Master节点的用于集群内部通信的IP地址,0.0.0.0表示节点上所有可用地址。

2024-02-27 08:56:20 1447

原创 二进制安装k8s高可用部署

etcd的操作:#查看etcd集群健康状态ETCDCTL_API=3 /opt/etcd/bin/etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable endpoint health#查看etcd集群状态信息。

2024-02-27 08:39:23 1292 2

原创 二进制部署k8s之网络部分

1)原始数据包从源主机的Pod容器发出,通过 veth pair 设备送达到tunl0接口,再被内核的IPIP驱动封装到node节点网络的IP报文里 2)根据Felix维护的路由规则通过物理网卡发送到目标node节点 3)IP数据包到达目标node节点的tunl0接口后再通过内核的IPIP驱动解封装得到原始数据包,再根据本地路由规则通过 veth pair 设备送达到目标Pod容器。Flannel产品成熟,依赖性较少,易于安装,功能简单,配置方便,利于管理。但是不具备复杂的网络策略配置能力。

2024-02-26 22:12:29 953

原创 k8s二进制部署的搭建

CFSSL 用来为 etcd 提供 TLS 证书,它支持签三种类型的证书: 1、client 证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如 kube-apiserver 访问 etcd;3、peer 证书,相互之间连接时使用的证书,如 etcd 节点之间进行验证和通信。上面的上下文名称为default,集群为kubenetes,用户为admin,表示使用admin的用户凭证来访问kubenetes集群的default命名空间,也可以增加--namspace来指定访问的命名空间。

2024-02-26 21:11:51 1243

原创 了解 Kubernetes

Service 主要负责 K8S 集群内部的网络拓扑,那么集群外部怎么访问集群内部呢?这个时候就需要 Ingress 了。Ingress 是整个 K8S 集群的接入层,负责集群内外通讯。Ingress 是 K8S 集群里工作在 OSI 网络参考模型下,第7层的应用,对外暴露的接囗,典型的访问方式是 http/https。Service 只能进行第四层的流量调度,表现形式是 ip+port。Ingress 则可以调度不同业务域、不同URL访问路径的业务流量。比如:客户端请求。

2024-02-22 08:39:37 1031

原创 ansible剧本中的角色

roles/ #角色总目录,其每个子目录就是一个角色目录nginx/ #相当于playbook中的每一个play主题,目录名就是角色名files/ #存放copy、script模块调用的文件templates/ #存放template模块调用的 XXX.j2 模板文件。

2024-02-19 17:00:45 943

原创 ansible的剧本

参数说明用来交互输入ssh密码用来交互输入sudo密码-u指定用户检查yaml文件的语法是否正确检查tasks任务检查生效的主机指定从某个task开始运行----- name: 设置play的名称hosts: 指定执行此play的远程主机组remote_user: 指定执行此play的用户。

2024-02-19 08:58:47 1134

原创 Ansible远程部署

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。

2024-02-08 21:11:22 1336

原创 Docker 安全及日志管理

(1)及时更新内核。(2)User NameSpace(容器内的 root 权限在容器之外处于非高权限状态)。(3)Cgroups(对资源的配额和度量),设置CPU、内存、磁盘 IO等资源限制。(4)通过启用 SELinux(控制文件访问权限)适当的强化系统来增加额外的安全性。(5)Capability(权限划分),比如划分指定的CPU给容器。(6)Seccomp(限定系统调用),限制不必要的系统调用。(7)禁止将容器的命名空间与宿主机进程命名空间共享,比如 host 网络模式。

2024-02-08 19:43:31 2362 1

原创 docker+consul的容器服务更新与发现

服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过端口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在文件中。这样就会产生几个问题如果需要调用后端服务器A-N,就需要配置N个服务的网络位置,配置很麻烦后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。

2024-01-31 08:36:03 1159

原创 Docker Compose

Docker-compose 项目是 Docker 官方的开源项目,负责实际对 Docker 容器集群的快速编排。Docker-compose 项目由 Python 编写,调用 Dokcer 服务提供的 API 来对容器进行管理。因此,只要操作的平台支持 Docker-AIP,就可以在其上利用 Compose 来进行编排管理Docker-compose是一个用于定义和运行多容器 Docker 应用程序的工具。

2024-01-29 22:14:48 1762

原创 Docker的优化和私有容器的部署管理

1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。"], #镜像加速,必加项 "bip": "172.7.5.1/24", #docker网络,必加项 "exec-opts": ["native.cgroupdriver=systemd"], #启动时候的额外参数(驱动),结合K8S使用 "live-restore": true #当docker容器引擎挂掉的时候,使用docker跑起来的容器还能运行(分离) ,必加项 } 以上是建议的配置项。此功能称为实时还原。

2024-01-28 21:24:31 1540

原创 Docker镜像的创建

但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。Dockerfile是由多条的指令组成的文件,其中每条指令对应 Linux 中的一条命令,Docker 程序将读取Dockerfile 中的指令生成指定镜像。

2024-01-26 08:41:05 1437

原创 Docker网络

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。

2024-01-24 23:17:00 802

原创 Dock的安装部署和基础命令

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

2024-01-24 09:30:06 1243

原创 Zookeeper+Kafka集群

此次投票结果:服务器1为0票,服务器2为0票,服务器3为3票。如果是非leader节点故障,直接替换新的节点继续做follower,与现存的leader连接并同步数据,如果是leader节点故障,则需要重新选举新的leader,先比较每个存活节点的epoch(参与选举的次数),如果有最大的则直接当选leader,如果epoch有相同的节点,再比较zxid(写操作的事务id)如果有最大的,则直接当选leader,如果有以上都相同的节点,继续比较sid(等同于myid),由myid最大的节点当选leader。

2024-01-22 21:54:59 1412

原创 Ceph应用

上面我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可设置副本 size 大小,默认副本数量为 3。OSD总数 小于5个,官方推荐 PG 数为 1285 ~10个,官方推荐 PG 数为 12810~50个,官方

2024-01-21 23:40:26 1288

原创 分布式日志

当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。2.3 第四台机器---------------------- ELK Logstash 部署(在 Apache 节点上操作) ----------------------------------------

2024-01-19 01:12:43 1399

原创 分布式存储

2)在 Ceph 中,一切皆对象。Ceph从Nautilus版本(14.2.0)开始,每年都会有一个新的稳定版发行,预计是每年的3月份发布,每年的新版本都会起一个新的名称(例如,“Mimic”)和一个主版本号(例如,13代表Mimic,因为“M”是字母表的第13个字母)。例如OSS,一个存储可以被多服务同时访问,具备块存储的高速读写能力,也具备文件存储共享的特性,适用图片存储、视频存储 基于API接口提供的文件存储,每一个文件都是一个对象,且文件大小各不相同的,文件的元数据和实际数据是存放在一起的。

2024-01-16 18:11:39 748

原创 Zabbix的多场景应用

2)在zabbix server/proxy 安装 zabbix java gateway,并修改 zabbix server/proxy 的配置文件设置 JavaGateway 的地址、StartJavaPollers 收集进程数。在 zabbix 服务端的 Web 管理页面【配置】-【主机】添加 SNMP 接口监控主机,默认端口为161,并指定 SNMP 协议版本(通常是V2),和网络设备团体名名(网络设备的唯一标识,可在网络设备的系统界面中查到)

2024-01-15 22:34:12 950

原创 Zabbix监控部署

zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由两个部分组成,zabbix、server与可选组件zabbix agent。通过C/S模式采集数据,通过B/S模式在web端展示和配置。

2024-01-14 19:06:31 1144

原创 rsync远程同步

为了在同步过程中不用输入密码,需要创建一个密码文件,保存 backuper 用户的密码,如 /etc/server.pass。rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。#可以先执行“inotifywait”命令,然后另外再开启一个新终端向 /var/www/html 目录下添加文件、移动文件,在原来的终端中跟踪屏幕输出结果。

2024-01-11 21:38:12 1350

原创 缓存代理服务器

缓存网页对象,减少重复请求存储一些之前被访问的或且可能将要备再次访问的静态网页资源对象,使用户可以直接从缓存代理服务器获取资源,从而减少上游原始服务器的负载压力,加快整个整个访问速度。代理服务器还可以代替客户端去获取原始服务器资源,从而隐藏客户端真实地址。

2024-01-10 17:56:21 1254

原创 灵活使用Redis高可用

实际上是一种服务的冗余。●负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;节点组中的节点分为主节点和从节点,只有主节点负责读写请求和集群信息的维护,从节点只进行主节点数据和状态信息的复制。数据的复制是单向的,只能由主节点到从节点。自动故障转移:当主节点不能正常工作室,哨兵会开始自动故障转移操作,他会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。

2024-01-09 18:32:08 1111

原创 Redis的优化

这样的操作虽然提高了效率,但也带来了安全问题:如果计算机停机,内存缓冲区的数据会丢失,因此系统提供了fsync、fadatasync等同步函数,可以强制操作系统立刻将缓存区中的数据写入到硬盘里,从而确保数据的安全性。Redis时内存从数据库,数据都是存储在内存中,为了避免服务器断电等原因等值Redis进程异常退出后数据打的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘,当下次Redis重启时,利用持久化文件实现数据恢复。文件重写是指定期重写AOF文件,减小AOF文件的体积。

2024-01-08 17:08:23 1213 1

原创 数据库的存储过程

存储过程是一组为了完成特定功能的SQL语句集合。

2024-01-08 08:37:30 2450

原创 简单又好玩的Redis数据库就是有点烦

2、Redis命令处理的核心模块为单线程,避免了多线程切换而消耗CPU,不用考虑各种锁的问题,不存在加锁、释放锁的操作,没有因为可能出现死锁而导致性能消耗。关系型数据天然就是表格式的,因此存储在数据表的行和列中。1)Redis作为基于内存运行的数据库,是一个高性能的缓存,一般应用在Session缓存、队列、排行榜、计数器、最近最热文章、最近最热评论、发布订阅等。NoSQL数据库时在CAP(一致性、可用性、分区容忍度)中任选两项,因为基于节点的分布式系统中,不坑你同时全部满足,所以对事务的支持不是很好。

2024-01-07 17:22:04 1039

原创 简单的MySQL高可用还不快来学

目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制群集必须最少有三台数据库服务器,一主二从,即一台充当Master,一台充当备用Master,另一台充当从库。●自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失 ●使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性 ●目前MHA支持一主多从架构,最少三台服务,即一主两从。

2024-01-05 08:50:07 1241

原创 根本记不住MySQL进阶查询语句

'A_Z':所有以 'A' 起头,另一个任何值的字符,且以 'Z' 为结尾的字符串。语法:SELECT "字段" FROM "表名" WHERE "字段" BETWEEN '值1' AND '值2';语法:SELECT "字段" FROM "表名" WHERE "字段" IN ('值1', '值2', ...);语法:SELECT "字段1" FROM "表格1" WHERE "字段2" [比较运算符] #外查询 (SELECT "字段1" FROM "表格2" WHERE "条件");

2024-01-04 22:17:48 1197

原创 为了让老板给你涨工资让你的mysql数据库实现主从复制和动静分离吧

所以,半同步复制最好在低延时的网络中使用。异步复制:MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。当半同步复制发生超时(由rpl_semi_sync_master_timeout参数控制,默认为10000ms,即10s),会暂时关闭半同步复制,转而使用异步复制,也就是会自动降为异步工作。

2024-01-03 00:01:35 1127

原创 备份好数据库你的BOSS会好好疼爱你的

mysqlbinlog --no-defaults --start-datetime=‘开始时间点’ --stop-position=‘结束时间点’ <二进制文件> | mysql -u用户名 -p密码。mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position=‘结束位置’ <二进制文件> | mysql -u用户名 -p密码。(逻辑热备:mysqldump -u用户名 -p密码 --databases 库1 库2.... >

2023-12-26 18:55:20 931

原创 天啦撸 超级麻烦的MySQL索引和数据引擎,快拿小本本记好

那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。支持事务、外键约束,支持行级锁定(在全表扫描时仍然会表级锁定),读写并发能力较好,支持全文索引(5.5版本之后支持),InnoDB的缓存能力较好,可以减缓磁盘IO的压力,他的数据文件也是索引文件。MySQL数据库中的组件,负责执行实际的数据I/O操作(数据的存储和提取),存储引擎工作在文件系统之上,数据库的数据文件会先传输到存储引擎,再按照各个存储引擎的存储格式保存到文件系统中。

2023-12-26 00:43:24 1004

原创 隔壁小孩馋哭了都要问我要的MySQL数据库攻略

表示授权操作的对象为 kgc数据库中的所有表。自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现面向对象的数据库系统,实用性强、适应面厂 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面一些新的元素被添加进主流数据库系统中 例如,Oracle支持的“关系-对象”数据库模型。create temporary table 表名 创建临时表 临时表跟普通表一样可以进行增删改查,但是show tables 是查不到的,临时表只能在当前会话中有效,退出当前会话或者其他会话中临时表都会失效。

2023-12-25 21:48:08 1026

原创 大网站都在用的HAproxy+Web群集还不快来学

这部分配置是将haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下。就性能来说LVS性能最好(基于性能实现的负载均衡,但是搭建相对复杂),Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,并发性能没有HAproxy好。#haproxy支持基于lua实现功能扩展(需要安装比较新的lua语言,方便进行haproxy编译)

2023-12-21 02:29:21 1121

原创 LVS+keepalived小白都看得懂也不来看?

原因:因为主服务器和备服务器之间的通信链路中断导致备服务器无法收到主服务器发送的VRRP心跳消息(或VIP通告消息,通告消息默认通过组播消息发送也可以通过广播消息发送),备服务器误认为主服务故障了并通过IP命令生成VIP地址。在一个LVS服务群集中通常有主服务(MASTE与R)和备服务器(BACKUP)两种角色的服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

2023-12-19 18:31:35 1090

原创 LVS最终奥义之DR直接路由模式

1.客户端通过VIP将访问请求报文(源IP为客户端IP,目标IP为VIP)发送到调度器 2.调度器通过调度算法选择最适合的节点服务器并重新封装数据报文(将源mac地址改为调度器的mac地址,目的mac地址改为节点服务器的mac地址,再通过交换机转发请求给节点服务器) 3.节点服务器收到请求报文后,确认目的mac和目的IP无误后,解封装后并送到应用层进行处理。(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。

2023-12-19 00:34:54 1122

原创 呕心沥血整理的LVS负载均衡知识还有NAT模式的部署,学到就是赚到

调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调度器,但是由于节点服务器需部署在不同的公网环境,所以要有独立的公网IP,而且调度器与节点服务器是通过专用的IP速到实现相互通信,因此IP隧道模式的成本较高,安全性较低,且数据IP隧道传输的过程中现需要额外的封装和解封装,性能也会受到一定影响。根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多,保证性能强的服务器承担更多的访问流量。节点服务器与调度器是部署在同一个网络里,因此不要建立专用的IP隧道。

2023-12-18 23:20:51 1111

原创 贤狗都能学会的四层和七层动静分离你还学不会?

hash $remote_addr (nginx全局变量) consistent:一致性的hash算法,根据客户端IP作为hash调度,是ip_hash的加强版。七层反向代理:基于 http、https、mail 等七层应用协议的代理转发,通常用于动静分离等应用场景,根据用户访问请求的URL路径来进行转发。url_hash:根据客户端访问的URL路径做hash缓存调度,分配请求给固定的一个后端节点,需要另外安装第三方模块。打开tomcat1的主配置文件并修改(最下面的hostname的配置文件全清除)

2023-12-15 23:57:51 885

空空如也

空空如也

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

TA关注的人

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