自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis订阅发布

Redis 发布订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。三个角色:消息发送者、频道、订阅者![在这里插入图片描述](https://img-blog.csdnimg.cn/20210410174813711.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly

2021-04-10 18:09:49 311

原创 redis持久化存储RDB+AOF

一、redis持久化redis是内存数据库,如果不把内存中的数据存储到磁盘中,那么一旦服务进程退出,服务器中的数据库状态也会消失。所以redis提供了持久化存储。1.1什么是RDB???RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。1.2自定义某时间内更改n次数据就备份(满足save条件)vim redis.conf#save 900 1 #save 300 10#save 60 10000#注释掉默认值自定义持久化存储策略save

2021-04-10 01:23:04 415

原创 redis基本事务操作+实现乐观锁(watch)

一、什么是原子性??同时失败或者同时成功!!理解如下:原子性即是,A原有5块石头,B原有3块石头;现有如下操作:A让C给予B一块石头,那么应该发生的事情有,A失去一块石头,变为4块,B得到一块石头变为5块;此时交易成功。不排除有意外情况,比如C在给予B的过程中,B出门了,那么,我们称这个操作失败了,要进行回滚。回滚就是回到事务开始之前的状态,A还是5块石头,B还是4块石头。我们把这种要么一起成功(A帐户成功减少一块石头,同时B得到一块石头),要么一起失败(A回到原来状态,B也回到原来状态)的操

2021-04-08 21:30:56 372

原创 redis的三种特殊类型之Hyperloglog+Bitmap

Hyperloglog是基于基数的算法来统计的什么是基数???基数(cardinal number)在数学上,是集合论中刻画任意集合大小的一个概念。两个能够建立元素间一一对应的集合称为互相对等集合。例如3个人的集合和3匹马的集合可以建立一一对应,是两个对等的集合。使用优点:占用固定的内存空间,2^64不同元素的技术,只需要12kb内存。使用场景:如果允许容错:比如统计页面的访问次数(一个人多次访问,但还是算作一个人的访问)不累计叠加,传统的方式是使用set保存用户的id,一旦为uuid的话那么id较

2021-04-06 23:23:17 269

原创 redis的三种特殊类型之Geospatial地理位置

如下使用 GEOADD命令一次添加各个城市的精度+维度(规则:两级无法直接添加,一般会直接下载城市数据,直接通过java程序直接一次性导入)参数key 值经度和纬度有效的经度:-180 ~ +180 有效的纬度:-85.05 ~ +85.05当设置的经度纬度值超过范围会报错:GEOADD china:city 109.29315 100 yulin(error) ERR invalid longitude,latitude pair 109.293150,100.000000

2021-03-31 23:30:59 246

原创 redis类型之有序集合zset

两种数据类型Set和ZSet基本上是一种,ZSet就是给Set加了个排序而已(相当于加了个属性)。Set是通过Hash表实现,增删改的查找复杂度都是O(1)。ZSet相当于Set的升级版本。演示如下:意思就是在插入值时需要打个标签,指定插入值的位置(1:表示的就是位置标签)添加三个用户127.0.0.1:6379> ZADD name 1 one (integer) 1127.0.0.1:6379> ZADD name 2 two(integer) 1127.0.0.1:6

2021-03-31 22:32:10 129

原创 redis类型之Hash(哈希)

相当于map集合,之前都是key-value,现在是key-map,本质和string类型区别不大以h开头的命令!!!127.0.0.1:6379> flushdbOK127.0.0.1:6379> hset hash filed value1 set一个具体key-value(integer) 1127.0.0.1:6379> hget hash filed 获取一个字段值"value1"127.0.0.1:6379> hmset hash filed hel

2021-03-31 22:01:40 187

原创 redis类型之set集合

set中的值是不能重复读的set命令都是s开头的127.0.0.1:6379> flushdb OK127.0.0.1:6379> sadd name a1 插入(integer) 1127.0.0.1:6379> sadd name a1 b1 c1 再次插入a1已经存在(integer) 2 只插入了两个,a1重复127.0.0.1:6379> smembers name 获取指定set的所有值1) "c1"2) "b1"3) "a1"1

2021-03-30 23:08:13 80

原创 redis类型之list列表

列表相当于队列所有的list命令都是以L开头插入、获取127.0.0.1:6379> flushall 清空所有OK# 依次插入:a b c127.0.0.1:6379> lpush name a 往列表里面插入值(integer) 1127.0.0.1:6379> lpush name b 插入b(integer) 2127.0.0.1:6379> lpush name c 插入c(integer) 3127.0.0.1:6379>

2021-03-29 22:59:31 86

原创 redis类型之字符串

字符串string127.0.0.1:6379> exists name 判断key存在(integer) 1127.0.0.1:6379> append name hello 追加命令append(若key不存在,则相当于set新建key) 给name追加hello 字符串 (integer) 10 字符串长度10127.0.0.1:6379> get name 获取key"luhanhello"127.0.0.1:6379> strl

2021-03-21 17:45:11 76

原创 redis一部署配置启动

一、redis的基础配置和操作redis默认会在/usr/local/bin下创建文件,需要把解压包里面的redis.conf文件拷贝到/usr/local/bin/redis-start/此目录下(目录是新建的)切记一定要把redis.conf 文件中的第136行更改: daemonize yes允许后台启动...

2021-03-21 17:44:29 174

原创 redis6.0.6版本安装部署

1.获取软件包redis-6.0.6.tar.gz2.安装gccRedis6.0以上对gcc版本有要求(5.3)以上查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5gcc -v # 查看gcc版本号升级gcc获取软件包并安装(网址pkgs.org下载)centos-release-scl-rh-2-3.el7.centos.src.rpmdevtoolset-9-binutils-2.32-16.el7.x86_64.rpmdevtoolset-9-gcc-9.3

2020-11-18 09:50:38 2172

原创 kubernetes存储(四)——NFS Client Provisioner的配置应用+statefulset控制器+部署mysql主从复制集群

一、StorageClass简介StorageClass提供了一种描述存储类(class)的方法,不同的class可能会映射到不同的服务质量等级和备份策略或其他策略等。每个 StorageClass 都包含 provisioner、parameters 和 reclaim Policy 字段, 这些字段会在StorageClass需要动态分配 PersistentVolume 时会使用到。StorageClass的属性Provisioner(存储分配器):用来决定使用哪个卷插件分配 PV,该字段必须

2020-07-19 14:06:43 1213 4

原创 kubernetes集群——高可用(haproxy+keeplived分布式)搭建应用

一k8s高可用集群二实验环境server1 172.25.10.1 harbor仓库server2 172.25.10.2 haproxyserver3 172.25.10.3 haproxyserver4 172.25.10.4 masterserver5 172.25.10.5 masterserver6 172.25.10.6 masterserver7 172.25.10.7 worke node三配置调度器haproxy在ser

2020-07-10 10:53:25 746

原创 kubernetes存储(三)——Volumes配置管理+empty Dir卷+hostPath 卷+NFS 示例+(持久卷PV+持久卷声明PVC)应用

一、volumes介绍1.1 在Docker中,也有volumes这个概念,volume只是磁盘上一个简单的目录,或者其他容器中的volume。生命周期也不受管理,并且直到最近他们都是基于本地后端存储的。  Kubernetes的volume,有着明显的生命周期——和使用它的pod生命周期一致。因此,volume生命周期就比运行在pod中的容器要长久,即使容器重启,volume上的数据依然保存着。当然,pod不再存在时,volume也就消失了。更重要的是,Kubernetes支持多种类型的volume

2020-07-05 00:41:14 1019

原创 kubernetes存储(二)——Secret配置管理+应用+挂载+映射 secret 密钥+Secret定义为环境变量

一、secret的介绍Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活。Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里。当 kubelet 为 pod 拉取镜像时使用。Secret的类型:Service Account:Kubernetes 自动创建包含访问 API 凭据的 secret,并自动修改 pod

2020-07-03 13:51:20 1211

原创 kubernetes存储(一)——ConfigMap配置、管理、应用+热更新

一、comfigmap(简称:cm)简介Configmap用于保存配置数据,以键值对形式存储。configMap 资源提供了向 Pod 注入配置数据的方法。旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。典型的使用场景:填充环境变量的值设置容器内的命令行参数填充卷的配置文件创建ConfigMap的方式有4种:使用字面值创建使用文件创建使用目录创建编写configmap的yaml文件创建二、创建cm清除之前ingress的实验操作2.1使用字面值创建从终端录

2020-07-02 15:57:39 1109

原创 Kubernetes集群——(k8s)ingress+加密认证+地址重写

一、ingress的认证参考官网信息https://kubernetes.github.io/ingress-nginx/examples/auth/basic/首先安装工具,生成一个基于Basic认证的用户和密码[root@server2 ~]# yum install -y httpd-tools注意:第一次创建用户需要使用-c参数,当文件中含有其他用户时,不要使用-c参数,否则会覆盖之前的信息htpasswd生成的文件的秘钥在Ingress规则中添加身份验证。生成的文件必须命名为au

2020-07-02 10:40:53 1096 2

原创 Kubernetes集群——(k8s)service(二)+ingress配置+NodeProt实现负载均衡+session实现会话保持(daemonset)+TLS加密认证

一、ingress简介一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。• Ingress由两部分组成:Ingress controller和Ingress服务。• Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes专门维护了对应的 Ingress Contr

2020-07-01 19:08:21 1302

原创 Kubernetes集群——(k8s)service(一)+外部主机访问容器的多种方法+【flannel(vxlan)+calico+host-gw】跨主机通信网络插件

一、service的简介1.1Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。• service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)• service的类型:ClusterIP: 默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个 NodeIP: nodePort都将路由

2020-07-01 19:07:22 1665

原创 Kubernetes集群——(k8s)pod容器的多种控制器应用+DaemonSet+deployment+job+ CronJob

一、Pod 的分类:• 自主式 Pod:Pod 退出后不会被创建• 控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目• 控制器类型:• Replication Controller和ReplicaSet• Deployment• DaemonSet• StatefulSet• Job• CronJob• HPA全称Horizontal Pod Autoscaler1.2Replication Controller和ReplicaSet• ReplicaSe

2020-06-26 15:54:02 563

原创 Kubernetes集群——(k8s)pod的生命周期+init容器+探针

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

2020-06-26 13:38:51 582

原创 Kubernetes集群——(k8s)资源清单

一、资源清单简介二、自主式Pod资源清单删除之前pod[root@server2 manifest]# kubectl delete svc myapp[root@server2 manifest]# kubectl delete deployments.apps myapp[root@server2 manifest]# kubectl get allNAME TYPE CLUSTER-IP EXTERNAL-IP PORT

2020-06-25 18:21:12 563

原创 Kubernetes集群——(k8s)pod管理

一、pod简介Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace二、pod管理kubectl命令:https://kubernetes.io/docs/reference/generated/kubectl/kubectl- commandsharbor仓库中导入后续实验所需的镜像

2020-06-22 22:45:39 824

原创 Kubernetes集群——(k8s)介绍+部署

一、介绍Kubernetes基本概念之Name和NameSpace在Kubernetes中,所有对象都会被指定一个唯一的Name和UID。用户还可以指定一些不要求唯一性的数据附加到对象上,例如Label和Annotation。1.1 NameName是创建一个Kubernetes对象时必须指定的,无论是Pod,ReplicaSet或者Deployment等等。如果通过REST API访问的话,形式就如/api/v1/pods/some-name。一个Name只能由小写字母,-和.组成,并且长度不

2020-06-22 22:45:12 1018

原创 Jenkins持续集成——jenkins结合ansible应用

一、jenkins结合ansible1.1添加ansible交付任务:Jenkins服务器提前部署好到目标主机的ssh免密,并安装ansible软件包。由于是以jenkins用户调用ansible命令,所以需要设置jenkins用户到目标主机的免密。1.2实验环境server5 172.25.254.5 jenkinsserver3 172.25.254.3 ansibleserver6 172.25.254.6 jenkins+ansible测试环境jenkins用户本身做免密,[ro

2020-06-19 14:30:28 1904

原创 jenkins持续集成——Jenkins安装配置+使用docker容器+持续集成、交付

一、jenkins简介1.1Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。1.2CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生

2020-06-19 14:29:36 731

原创 Docker(仓库)——Docker Hub 公共仓库+企业级私有仓库搭建流程

目录一、什么是仓库二、Docker Hub三、配置镜像加速器四、Registry 工作原理五、CONTENTS六、搭建私有仓库一、什么是仓库什么是仓库?• Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。• Docker运行中使用的默认仓库是 Docker Hub 公共仓库。二、Docker Hub的介绍Docker Hubdocker hub是docker公司维护的公共仓库,

2020-06-19 14:29:09 1351

原创 jenkins持续集成——Jenkins+企业级的私有仓库运用

上篇文章完成了本机registry私有仓库的镜像拉取部署(主要是Jenkins主动扫描gitlab,被动触发,间隔一分钟。)本章内容1.gitlab自动实时触发jenkins(添加gitlab插件)搜索插件gitlab,点击直接安装 外发请求允许来自钩子和服务的对本地网络的请求。允许Webhook和服务对本地网络的请求允许系统钩子向本地网络发送的请求更改demo的构建参数更改文件权限[root@server5 run]# chmod 777 docker.sock[root

2020-06-19 14:28:27 996

原创 持续集成与持续交付——git工具的使用+gitlab代码仓库

一、git介绍1.1Git特点:速度简单的设计对非线性开发模式的强力支持(允许成千上万个并行开发的分支)完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。Git必看秘籍:https://git-scm.com/book/zh/v21.2Git 有三种状态:已提交(committed)、已修改(

2020-06-13 23:03:58 523

原创 ELK(ELK日志分析平台)——kibana数据可视化+启用xpack安全验证

一、kibana简介Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三

2020-06-13 17:45:46 960

原创 ELK(日志系统)——logstash数据采集+Syslog输入插件+grok/多行过滤插件

一、logstash简介Logstash是一个开源的服务器端数据处理管道。logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是 Elasticsearch。)Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。输入:采集各种样式、大小和来源的数据Logstash 支持各种输入选择 ,同时从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS

2020-06-13 17:44:59 1870

原创 ELK(日志系统)——安装部署+服务配置+节点多种优化

一、elasticsearch简介Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:一个分布式的实时文档存储,每个字段 可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据elasticsearch应用场景:信息检索日志分析业务数据分析数据库加速运维指标监控官网:htt

2020-06-13 17:43:37 543

原创 saltstack(自动化运维工具)——JOB管理+salt-ssh与salt-syndic+salt-api配置

一、Job简介master在下发指令任务时,会附带上产生的jid。minion在接收到指令开始执行时,会在本地的/var/cache/salt/minion/proc目录下产生该jid命名的文件,用于在执行过程中master查看当前任务的执行情况。指令执行完毕将结果传送给master后,删除该临时文件。Job缓存默认保存24小时:# vim /etc/salt/masterkeep_jobs: 24master端Job缓存目录:/var/cache/salt/master/jobs流程

2020-06-10 20:46:34 261

原创 saltstack(自动化运维工具)——数据采集系统(grains与pillar详解)+ Jinja模板的多种使用方式

一、grains详解1.1grains简介Grains是SaltStack的一个组件,存放在SaltStack的minion端。当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。由于grains是静态数据,因此不推荐经常去修改它。应用场景:1.信息查询,可用作CMDB。2.在target中使用,匹配minion。3.在state系统中使用,配置管理模块。1…2信息查询用于查询minion端的IP、FQDN等信息。默认可

2020-06-10 20:46:02 1052

原创 saltstack(自动化运维工具)——介绍、安装、部署+远程执行

一、saltstack简介saltstack是一个配置管理系统,能够维护预定义状态的远程节点。saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。saltstack是运维人员提高工作效率、规范业务配置与操作的利器。Salt的核心功能1)使命令发送到远程系统是并行的而不是串行的2)使用安全加密的协议3)使用最小最快的网络载荷4)提供简单的编程接口Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。1.2s

2020-06-10 20:45:34 10434

原创 docker(容器)——容器数据卷管理的详解(共享数据)+docker managed volume数据卷

一、什么是Dokcer容器的数据卷?【数据卷是一个或多个容器中专门指定的目录,它能够绕过联合文件系统。】卷被设计用作数据持久化、并且是独立于容器的生命周期的。因此,Docker不会在删除容器时自动删除数据卷卷,也不会主动“垃圾回收”掉容器不再使用的卷。说白了,数据卷的存在就是想让容器的数据持久化存在,而且可以实现容器之间的数据共享;当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的;’但是其中产生的部分内容我们是希望能够把它给保存起来另作用途

2020-06-09 17:21:10 492 1

原创 docker(容器)——跨主机网络访问(不同宿主机上的容器之间的通信)

一、跨主机网络解决方案1.docker原生的overlay和macvlan2.第三方的flannel、weave、calico1.2这些解决方案怎么和docker集成在一起?libnetwork(docker容器网络库,其中CNM (ContainerNetworkModel)是它的核心,它对容器网络进行了抽象)1.3macvlan网络方案实现(使用的是linux内核虚拟化技术,无需桥接,直接使用物理接口, 性能极好)Macvlan是一个新的尝试,是真正的网络虚拟化技术的转折点。Linu

2020-06-09 17:20:19 3295

原创 docker(容器)——网络介绍:bridge+ none + host+自定义网络模式+容器通信(实现容器与外网通信)

一、Docker网络的介绍Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求先介绍Docker自身的4种网络工作方式,然后介绍一些自定义网络模式安装Docker,它会自动创建三个原生网络,bridge(创建容器默认连接到此网络)、 none 、host网络模式介绍Bridge此模式会为每一

2020-06-09 17:19:49 787

原创 docker(容器)——创建镜像的私有仓库+设置加密认证+远程主机使用容器

一、Docker 仓库简介仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。;实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问;当然,用户也可以在本地网络内创建一个私有仓库;当用

2020-06-04 14:54:19 1373

空空如也

空空如也

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

TA关注的人

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