自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Pod控制器

Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。

2023-08-15 21:09:04 371

原创 kubernetes中PV和PVC

PV 全称叫做 Persistent Volume,持久化存储卷。K8S在指定存储设备空间中逻辑划分创建的可持久化的存储资源对象。PVC 的全称是 Persistent Volume Claim,是持久化存储的请求。是对PV资源对象的请求和绑定,也是Pod能挂载使用的一种存储卷类型。PV是集群中的资源。PVC是对这些资源的请求,也是对资源的索引检查。

2023-08-14 22:00:58 827

原创 Kubernetes 调度约束(亲和性、污点、容忍)

原因很简单,假设这个时候 kubectl 发命令,要扩充 Pod 副本数量,那么上面的流程又会触发一遍,kubelet 会根据最新的 Pod 的部署情况调整 Node 的资源。Sheduler 是作为单独的程序运行的,启动之后会一直监听 APIServer,获取 spec.nodeName 为空的 pod,对每个 pod 都会创建一个 binding,表明该 pod 应该放到哪个节点上。Pod 创建完之后,一直到持久运行起来,中间有很多步骤,也就有很多出错的可能,因此会有很多不同的状态。

2023-08-12 14:08:59 752 1

原创 kubernetes的存储卷使用

容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需要共享文件。Pod 中的容器可以读取和写入emptyDir卷中的相同文件,尽管该卷可以挂载到每个容器中的相同或不同路径上。Kubernetes中通过简单地配置就可以挂载NFS到Pod中,而NFS中的数据是可以永久保存的,同时NFS支持同时写操作。

2023-08-11 16:41:57 690

原创 Pod进阶

spec.containers[].resources.requests.cpu 为 0.5 的容器能够获得一个 cpu 的一半 CPU 资源(类似于Cgroup对CPU资源的时间分片)。表达式 0.1 等价于表达式 100m(毫核),表示每 1000 毫秒内容器可以使用的 CPU 时间总量为 0.1*1000 毫秒。可以以整数表示,或者以10为底数的指数的单位(E、P、T、G、M、K)来表示, 或者以2为底数的指数的单位(Ei、Pi、Ti、Gi、Mi、Ki)来表示。适用于 Pod 中的所有容器。

2023-08-10 18:34:28 158

原创 kubernetes中最小组件——Pod

Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为Pod提供存储的PersistentVolume存储资源对象等。

2023-08-09 18:05:43 413

原创 yaml文件详解

Kubernetes 支持 YAML 和 JSON 格式管理资源对象JSON 格式:主要用于 api 接口之间消息的传递YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读大小写敏感使用缩进表示层级关系不支持Tab键制表符缩进,只使用空格缩进缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格符号字符后缩进一个空格,如冒号,逗号,短横杆(-)等“---”表示YAML格式,一个文件的开始,用于分隔文件间“#”表示注释。

2023-08-08 19:02:54 8178

原创 kubectl 详解

kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。对资源的增、删、查操作比较方便,但对改的操作就不容易了kubectl的使用学习kubectl --help 或 kubectl -h。

2023-08-07 22:35:50 3086

原创 Kubernetes架构和工作流程

kubernetes,简称为k8s(k12345678s)。用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。K8S是Google开源的容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

2023-08-02 22:00:58 1563 2

原创 ansible——roles 角色

handlers目录用于定义此角色中触发条件时执行的动作。#变量放在vars目录下pkg: nginxsvc: nginx。

2023-07-31 18:39:46 641

原创 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变量信息。

2023-07-31 00:00:00 531

原创 Dcoker compose单机容器集群编排管理

Docker compose 项目是 docker 官方的开源项目,负责实现对 docker compose 项目由 Python 编写,调用 docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 compose 来进行编排管理Docker compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许用户使用 YAML 文件来定义应用程序的配置,包括容器的数量、容器之间的依赖关系、环境变量、端口映射以及其他设置。

2023-07-29 22:00:00 282

原创 Ansible 自动化运维工具

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

2023-07-27 19:43:13 578

原创 Dockerfile 创建镜像,构建LNMP+wordpress架构

创建自定义网络#查看自定义网络。

2023-07-26 19:33:33 682

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

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

2023-07-26 18:51:46 417 2

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

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

2023-07-26 09:48:57 341

原创 Docker 的数据管理、容器互联、镜像创建

因为对于精简的OS,rootfs可以很小,只需要包含最基本的命令、工具和程序库就可以了,因为底层直接用宿主机的kernel,自己只需要提供rootfs就可以了。容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。

2023-07-23 11:54:21 346

原创 Docker 网络

例如执行以下命令就会报错#可以先自定义网络,再使用指定IP运行docker#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。

2023-07-23 08:28:54 415

原创 Docker 基本管理

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

2023-07-21 08:46:26 495

原创 Ceph 服务的运用

Ceph 客户端向 monitor 请求集群的状态,并向 Pool 中写入数据,数据根据 PGs 的数量,通过 CRUSH 算法将其映射到不同的 OSD 节点上,实现数据的存储。对象存储(object storage)是非结构数据的存储方法,对象存储中每一条数据都作为单独的对象存储,拥有唯一的地址来识别数据对象,通常用于云计算环境中。对 rbd 镜像进行快照,可以保留镜像的状态历史,另外还可以利用快照的分层技术,通过将快照克隆为新的镜像使用。不同于其他数据存储方法,基于对象的存储不使用目录树。

2023-07-19 22:09:32 1584

原创 Ceph集群

直接附加存储,是直接接到计算机的主板总线上去的存储IDE、SATA、SCSI、SAS、USB 接口的磁盘。所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。

2023-07-17 13:45:28 765

原创 Zookeeper集群 + Kafka集群

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。用于注册各种分布式应用,存储和管理各种分布式应用服务的元数据,如果应用服务状态发生改变会通知客户端。主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。

2023-07-15 16:05:44 1002

原创 Logstash ——filter 四大过滤插件

语法:(?举例:捕获10或11和长度的十六进制数的queue_id可以使用表达式(?filter {grok {如果表达式匹配失败,会生成一个tags字段,字段值为 _grokparsefailure,需要重新检查上边的match配置解析是否正确。

2023-07-12 16:13:49 1519

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

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。input {file{#path表示要收集的日志的文件位置#type是输入ES时给结果增加一个叫type的属性字段#start_position可以设置为beginning或者end,beginning表示从头开始读取文件,end表示读取最新的,这个要和ignore_older一起使用。

2023-07-11 16:06:28 1971

原创 zabbix 监控 windows 系统、java应用、SNMP

SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。

2023-07-08 20:16:04 4007

原创 部署 zabbix 自动发现/注册、代理服务器、高可用

zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

2023-07-08 20:15:43 454

原创 Zabbix6.0 的部署、自定义监控服务

Zabbix 是一款可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。Zabbix 基于存储的数据提供报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。

2023-07-06 14:25:00 4874 3

原创 rsync增量备份工具

rsync 远程同步rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。rsync支持本地复制,或者与其他SSH、rsync主机同步。

2023-07-05 17:08:51 1273

原创 Squid代理服务器应用

Squid 主要提供缓存加速、应用层过滤控制的功能。格式:acl 列表名称 列表类型 列表内容 …......acl localhost src 192.168.80.10/32 #源地址为 192.168.80.10acl MYLAN src 192.168.80.0/24 192.168.1.0/24 #客户机网段acl destinationhost dst 192.168.80.13/32 #目标地址为 192.168.80.13。

2023-07-04 19:05:11 124

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

主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡;存储能力受到单机的限制;哨兵无法对从节点进行自动故障转移,在读写分离场景下,从节点故障会导致读服务不可用,需要对从节点做额外的监控、切换操作。

2023-07-02 21:43:43 467

原创 Redis优化

为了提高文件写入效率,在现代操作系统中,当用户调用write函数将数据写入文件时,操作系统通常会将数据暂存到一个内存缓冲区里,当缓冲区被填满或超过了指定时限后,才真正将缓冲区的数据写入到硬盘里。持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;需要注意的是,AOF重写是把Redis进程内的数据转化为写命令,同步到新的AOF文件;设置redis可以使用的内存量。

2023-07-02 16:08:35 1551

原创 Redis数据类型

String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素hash用于存储对象。可以采用这样的命名方式:对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。如:存储 ID 为 2 的汽车对象。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。

2023-07-02 16:07:57 156

原创 Redis安装配置及常用redis命令

实例-->数据库-->表(table)-->记录行(row)、数据字段(column)实例-->数据库-->集合(collection)-->键值对(key-value)非关系型数据库不需要手动建数据库和集合(表)。Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。

2023-07-01 22:04:51 589

原创 MHA高可用配置及故障切换

MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

2023-06-28 15:21:13 168

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

在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。有点类似于rsync,但是不同的是rsync是对磁盘文件做备份,而mysql主从复制是对数据库中的数据、语句做备份。读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用。所以读写分离,解决的是,数据库的写入,影响了查询的效率。

2023-06-25 15:32:25 409

原创 MySQL之存储过程

存储过程是一组为了完成特定功能的SQL语句集合。存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统SQL速度更快、执行效率更高。

2023-06-25 10:04:56 3256

原创 MySQL进阶SQL语句2之表连接

当视图中字段保留源表中字段(没有经过函数处理),视图数据可以修改,源表数据也随之改变。当视图中字段经过处理后,视图数据无法修改(例:字段经过聚合函数修改)

2023-06-24 19:38:03 1906

原创 MySQL进阶SQL语句之函数运用

准备两张表。

2023-06-21 17:05:34 333

原创 MySQL备份与恢复

如果恢复某条SQL语句以及之后的所有数据,就从这个语句的位置节点或者时间点start。如果恢复某条SQL语句之前的所有数据,就stop在这个语句的位置节点或者时间点。在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果。数据备份的主要目的是灾难恢复。

2023-06-20 15:14:24 297

原创 Mysql索引、事务以及存储引擎

索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址使用索引后可以不用扫描全表来定位某行的数据,而是通过索引表找到该行数对应的物理地址然后访问相应的数据索引好比是一本书的目录,可以根据目录中的页码快速找到所需的内容索引是表中一列或者若干列值排序的方法建立索引的目的是加快对表中记录的查找或排序2.作用设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要原因。

2023-06-18 21:57:21 294

空空如也

空空如也

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

TA关注的人

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