自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL-9.1.0 GTID模式

MySQL9 GTID 模式主从

2024-12-15 02:30:42 688 1

原创 MySQL-9.1.0 实现最基础的主从复制

本次实验 使用 docker 镜像,开启三个容器,实现一主两从。容器主机IP地址映射主机端口330633073308。

2024-12-12 01:51:04 801

原创 函数的参数

不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。位置参数:调用函数时根据函数定义的参数位置来传递参数。注意:传递和定义参数的顺序及个数必须一致。并且发现了不定长参数返回的是以元组的类型。

2024-10-14 15:14:16 302 1

原创 在Python中的可变数据类型与不可变数据类型

如下图输出,可以发现不可变数据类型在修改了值之后会在内存中新增了一块内存地址,而可变数据类型则还是还用原先的地址。所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变.

2024-10-14 15:01:13 328

原创 Python 使用函数归纳判断回文质数

回文质数是指既是回文数又是质数的数。1.1 回文数回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121、11、2222 等都是回文数。1.2 质数质数又称素数,是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。例如,2、3、5、7、11 等都是质数。所以,回文质数就是同时满足这两个条件的数,比如 11,它既是回文数(正序和倒序都是 11),又是质数(只有 1 和 11 两个因数)。

2024-10-11 16:14:00 625

原创 k8s 的网络通信

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

2024-10-10 01:08:46 1000

原创 k8s 中的 PV 的动态供给

模版文件内容如下这些只是模版,之后还需修改2.2.1 Storageclass 存储类的模版2.2.2 创建 Provisioner 制备器的模版2.2.3 rbac 的模版此次只需要在里面修改命名空间就可以了2.2.4 PVC 的模版2.2.5 使用 pod 测试使用的模版3 PV 动态供给的实践操作。

2024-10-07 18:42:52 1438

原创 k8s 中存储之 PV 持久卷 与 PVC 持久卷申请

前面已经学习了使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用, kubernetes引入PV和PVC两种资源对象。PV(Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。

2024-10-07 02:41:22 1872

原创 k8s 中存储之 NFS 卷

HostPath可以解决数据持久化的问题,但是一旦Node节点故障了,Pod如果转移到了别的节点,又会出现问题了,此时需要准备单独的网络存储系统,比较常用的用NFS、CIFS。NFS是一个网络文件存储系统,可以搭建一台NFS服务器,然后将Pod中的存储直接连接到NFS系统上,这样的话,无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。

2024-10-06 17:55:58 1338

原创 k8s 中存储之 hostPath 卷

EmptyDir中数据不会被持久化,它会随着Pod的结束而销毁,如果想简单的将数据持久化到主机中,可以选择HostPath。HostPath就是将Node主机中一个实际目录挂在到Pod中,以供容器使用,这样的设计就可以保证Pod销毁了,但是数据依据可以存在于Node主机上。

2024-10-06 17:25:16 1157

原创 k8s 中存储之 emptyDir 卷

缓存空间,例如基于磁盘的归并排序。耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。在 Web 服务器容器服务数据时,保存内容管理器容器获取的文件。使用两个容器组成一个 Pod 用 emptyDir 卷 实现 同 Pod 之间的数据共享使用 busybox 和 nginx 容器 组成一个Pod3.2 创建 Pod 清单文件命令只支持单一容器的Pod创建。对于多容器的Pod 只能手动添加第二个容器的部分。

2024-10-06 16:53:01 3072

原创 k8s 中的金丝雀发布(灰度发布)

金丝雀发布(Canary Release)也称为灰度发布,是一种软件发布策略。主要目的是在将新版本的软件全面推广到生产环境之前,先在一小部分用户或服务器上进行测试和验证,以降低因新版本引入重大问题而对整个系统造成的影响。是一种Pod的发布方式。金丝雀发布采取先添加、再删除的方式,保证Pod的总量不低于期望值。并且在更新部分Pod后,暂停更新,当确认新Pod版本运行正常后再进行其他版本的Pod的更新。

2024-10-06 01:22:46 2441

原创 k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载

LoadBalancer和NodePort很相似,目的都是向外部暴露一个端口,区别在于LoadBalancer会在集群的外部再来做一个负载均衡设备,而这个设备需要外部环境支持的,外部服务发送到这个设备上的请求,会被设备负载之后转发到集群中。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。Ingress由两部分组成:Ingress controller和Ingress服务。

2024-10-05 03:27:21 1295 4

原创 教你如何零基础在 k8s 集群中部署一个nginx服务

本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。

2024-09-30 22:46:49 2404

原创 kubernetes微服务之ingress-nginx

Ingress-nginx 是一个广泛使用的 Kubernetes Ingress 控制器,它基于 Nginx 反向代理和负载均衡器来处理进入 Kubernetes 集群的 HTTP 和 HTTPS 流量。Ingress-nginx 提供了一个强大的工具来管理 Kubernetes 集群的入口流量,允许用户通过 Ingress 资源来定义如何将外部请求路由到集群内部的服务。

2024-09-08 22:12:29 2278 1

原创 kubernetes微服务基础及类型

用控制器来完成集群的工作负载,那么应用如何暴漏出去?需要通过微服务暴漏出去后才能被访问Service是一组提供相同服务的Pod对外开放的接口。借助Service,应用可以实现服务发现和负载均衡。service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)

2024-09-08 02:10:43 945

原创 kubelet 探针

ExecAction:在容器内执行指定命令。如果命令退出时返回码为 0 则认为诊断成功。TCPSocketAction:对指定端口上的容器的 IP 地址进行 TCP 检查。如果端口打开,则诊断被认为是成功的。HTTPGetAction:对指定的端口和路径上的容器的 IP 地址执行 HTTP Get 请求。如果响应的状态码大于等于200 且小于 400,则诊断被认为是成功的。每次探测都将获得以下三种结果之一:成功:容器通过了诊断。失败:容器未通过诊断。未知:诊断失败,因此不会采取任何行动。

2024-09-06 00:40:45 846

原创 pod的生命周期

官方文档Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器。Init 容器与普通的容器非常像,除了如下两点:它们总是运行到完成init 容器不支持 Readiness,因为它们必须在 Pod 就绪之前运行完成,每个 Init 容器必须运行成功,下一个才能够运行。如果Pod的 Init 容器失败,Kubernetes 会不断地重启该 Pod,直到 Init 容器成功为止。

2024-09-05 20:25:00 873

原创 kubernetes 中 利用yaml文件部署应用

参数名称类型参数说明versionString这里是指的是K8S API的版本,目前基本上是v1,可以用kubectl api-versions命令查询kindString这里指的是yaml文件定义的资源类型和角色,比如:PodmetadataObject元数据对象,固定值就写metadataString元数据对象的名字,这里由我们编写,比如命名Pod的名字String元数据对象的命名空间,由我们自身定义SpecObject详细定义对象,固定值就写Speclist。

2024-09-05 01:01:17 1550

原创 kubernetes中的资源管理

在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。

2024-09-04 20:34:59 988

原创 Kubernetes 简介及部署方法

目录1 Kubernetes 简介及原理1.1 应用部署方式演变1.2 容器编排应用1.3 kubernetes 简介1.4 K8S的设计架构1.5 K8S 各组件之间的调用关系1.6 K8S 的 常用名词感念1.7 k8S的分层架构2 K8S 集群环境搭建2.1 k8s 中容器的管理方式2.2 k8s中使用的几种管理容器的介绍3 kubernetes 的环境部署3.1 实验环境准备3.1.1 所有机子配置dns解析 3.1.2 部署docker3.1.3 k8s 所有机子都需执行,指定仓库地址 3.1.4

2024-09-03 03:14:30 1638

原创 使用 Docker 搭建企业级私有仓库HARBOR

Harbor 是由vmware公司开源的企业级 Docker Registry 项目。它提供了以下主要功能和特点:1. 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理的灵活性。2. 镜像复制:支持在不同的 Harbor 实例之间复制镜像,方便在多个数据中心或环境中分发镜像。3. 图形化用户界面(UI):提供了直观的 Web 界面,便于管理镜像仓库、项目、用户等。4. 审计日志:记录了对镜像仓库的各种操作,有助于追踪和审查活动。

2024-09-01 20:43:15 1365 4

原创 Docker 容器编排之 Docker Compose

是一个用于定义和运行多容器Docker应用程序的工具。其是官方的一个开源项目,托管到github上。

2024-09-01 15:15:21 1314

原创 Docker 的安全优化

容器只是运行在宿主机上的一种特殊的进程,那么多个容器之间使用的就还是同一个宿主机的操作。确保当发生在容器内的资源压力不会影响到本地主机系统和其他容器,它在防止拒绝服务攻击。)方面必不可少,因为在遭受攻击的时候多容器的隔离性比较差,是会影响到其他 的容器。是 Docker 容器的 cgroup 控制组的一部分,专门用于管理内存资源。提供了很多有用的特性,确保各容器可以公平地分享主机的内存、内核一个强大的特性,可以提供细粒度的权限访问控制。内核的命名空间机制提供的容器隔离安全。权限,容器只需要少数的能力即可。

2024-08-31 01:28:11 1406 1

原创 Docker 数据卷管理及优化

通过这种方式,可以将数据存储在宿主机上,从而避免了数据仅存在于容器内的局限性,这对于需要数据持久化或者跨容器共享数据的场景特别有用。数据卷是一个可供容器使用的特殊目录,它绕过了容器的文件系统,直接将数据存储在宿主机上。一般在不建立数据卷的时候再关闭或者说停止容器的时候,数据也是会随着容器关闭删除而删除。独立于容器生命周期:数据卷的生命周期独立于容器,不受容器的启动、停止和删除的影响。数据持久化:即使容器被删除或重新创建,数据卷中的数据仍然存在,不会丢失。如果挂载时指向容器内已有的目录,原有数据会被复制到。

2024-08-30 23:03:42 1348

原创 容器访问外网

在容器建立端口映射后都会开启,无论使用哪一个都可以与内网进行通讯。那个传输速录高走那个。在生产环境中,我们的容器不可能都在同一个系统中,所以需要容器具备跨主机通信的能力。在高版本中可以开启内核中的iptables。添加地址伪装策略来完成容器网文外网。容器的接口直接与主机网卡连接,无需。)这个模型对容器网络进行了抽象。,直接使用物理接口,性能极好。网络在二层上是隔离的,所以不同。:容器网络栈,包含容器接口、会独占主机网卡,但可以使用。可以将物理二层网络划分为。个逻辑网络,彼此隔离,主机上各添加一块网卡,

2024-08-30 20:15:01 2000

原创 制作 Docker 镜像

1.1 docker的镜像结构指令描述FROM指定基础镜像,例如:FROM busybox:versionCOPY复制文件,例如:COPY file /file 或者 COPY ["file","/"]MAINTAINER指定作者信息,例如邮箱:MAINTAINER在最新版的Docker中用LABEL KEY="VALUE"代替ADD功能和COPY相似,指定压缩文件或url,例如:ADD test.tar /mnt 或者 ADD/mntENV。

2024-08-30 02:27:12 2005 1

原创 Docker的网络模式

host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。使用--net=host指定。Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。使用指定。None:该模式关闭了容器的网络功能。使用--net=none指定。Bridge:此模式会为每一个容器分配、设置IP等。使用指定,默认设置。自定义桥接网络模式还可以自定义地址和网关"IPAM": {},},

2024-08-30 02:12:21 1136

原创 docker 镜像仓库的管理

1.1 什么是docker仓库Docker仓库(是用于存储和分发Docker镜像的集中式存储库。它就像是一个大型的镜像仓库,开发者可以将自己创建的Docker镜像推送到仓库中,也可以从仓库中拉取所需的镜像。Docker仓库可以分为公共仓库和私有仓库:公共仓库,如Docker Hub,任何人都可以访问和使用其中的镜像。许多常用的软件和应用都有在Docker Hub上提供的镜像,方便用户直接获取和使用。例如,想要部署一个 Nginx服务器,就可以从Docker Hub。

2024-08-28 22:34:21 1928 1

原创 docker的部署及基本用法

1.1 什么是docker?Docker是管理容器的引擎,为应用打包、部署平台,而非单纯的虚拟化技术它具有以下几个重要特点和优势:1.轻量级虚拟化Docker容器相较于传统的虚拟机更加轻量和高效,能够快速启动和停止,节省系统资源。例如,启动一个Docker容器可能只需要几秒钟,而启动一个虚拟机则可能需要几分钟。2.一致性:确保应用程序在不同的环境中(如开发、测试、生产)具有一致的运行表现。无论在本地还是云端,应用的运行环境都能保持相同,减少了因环境差异导致的问题。3.可移植性。

2024-08-27 20:33:36 2430 2

原创 Redis Cluster(无中心化设计)

在哨兵sentinel机制中,可以解决redis高可用问题,即当master故障后可以自动将slave提升为master,从而可以保证redis服务的正常使用,但是无法解决redis单机写入的瓶颈问题,即单机redis写入性能受 限于单机的内存大小、并发数量、网卡速率等因素。redis 3.0版本之后推出了无中心架构的机制,在无中心的redis集群当中,其每个节点保存当前节点数据和整个集群状态,每个节点都和其他所有节点连接。

2024-08-27 03:21:05 1045

原创 Redis 实现哨兵模式

哨兵也叫 sentinel,它的作用是能够在后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。Sentinel进程是用于监控redis集群中Master主服务器工作的状态,在Master主服务器发生故障的时候, 可以实现Master和Slave服务器的切换,保证系统的高可用,此功能在redis2.6+的版本已引用,Redis的 哨兵模式到了2.8版本之后就稳定了下来。一般在生产环境也建议使用Redis的2.8版本的以后版本每个哨兵。

2024-08-26 20:06:10 1508

原创 Redis 的 主从复制

随着项目访问量的增加,对Redis服务器的操作也越加频繁,虽然Redis读写速度都很快,但是一定程度上也会造成一定的延时,那么为了解决访问量大的问题,通常会采取的一种方式是主从架构Master/Slave,Master 以写为主,Slave 以读为主。

2024-08-26 17:24:40 1087 1

原创 Redis 源码安装

是一个脚本文件,它可以用来设置 Redis 服务的基本配置,例如启动 Redis 服务、创建配置文件等。运行该脚本后,根据提示来完成 Redis 服务器的安装过程。由于使用的是Rocky Linux 9 使用的系统服务为systemd ,需要将脚本检查给注释。Redis 源码包获取。找到以下几行将他注释。

2024-08-26 16:22:53 2085

原创 MySQL高可用之MHA

1.1 为什么要用MHA?Master的单点故障问题1.2 什么是MHA?MHA)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。1.3 MHA的组成MHA由两部分组成管理节点数据库节点),可以单独部署在一台独立的机器上管理多个集群,也可以部署在一台。

2024-08-26 03:18:09 1117

原创 MySQL 中间件 MySQL-Router

MySQL Router 是 MySQL 官方提供的一款中间件软件,它主要用于实现数据库的路由和负载均衡功能。MySQL Router 可以帮助开发者更轻松地管理复杂的数据库架构,尤其是在需要处理多个数据库实例或者需要实现读写分离等场景下非常有用。

2024-08-24 19:40:27 1834

原创 mysql高可用之组复制 (MGR)

简称MGR )是MySQL官方于2016年12月推出的一个全新的高可用与高扩 展的解决方案组复制是版本出现的新特性,它提供了高可用、高扩展、高可靠的MySQL集群服务MySQL组复制分单主模式和多主模式,传统的mysql复制技术仅解决了数据同步的问题,MGR对属于同一组的服务器自动进行协调。对于要提交的事务,组成员必须就全局事务序列中给定事务的顺序达成一致提交或回滚事务由每个服务器单独完成,但所有服务器都必须做出相同的决定。

2024-08-24 19:31:39 669

原创 MySQL 的半同步模式

MySQL 半同步复制是一种机制,旨在解决主从数据的一致性问题。它的主要目标是在主服务器提交事务之前等待至少一个从服务器确认收到了该事务的二进制日志事件。这样可以确保主服务器上的事务在从服务器上至少有一个副本,从而提高数据可靠性。在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新的数据写入它的二进制日志(Binlog)文件中后,无需等待验证更新数据是否已经复制到从服务器中,就可以自由处理其它进入的事务处理请求。

2024-08-24 11:04:30 1752

原创 MySQL主从复制之GTID模式

GTID用于在binlog中唯一标识一个事务。当事务提交时,MySQL Server在写binlog的时候,会先写一个特殊的Binlog Event,类型为GTID_Event,指定下一个事务的GTID,然后再写事务的Binlog。主从同步时GTID_Event和事务的Binlog 都会传递到从库,从库在执行的时候也是用同样的GTID写binlog,这样主从同步以后,就可通过GTID确定从库同步到的位置了。

2024-08-24 02:04:49 3072

原创 MySQL的延迟复制

MySQL 5.7 支持延迟复制,使得 副本服务器故意滞后于源服务器至少一个 指定的时间量。默认延迟为 0 秒。

2024-08-23 19:41:53 1110

空空如也

空空如也

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

TA关注的人

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