Redis 备份与恢复
有两种方案,远程与本地 集群与哨兵模式都适用,只不过集群备份还原多节点,哨兵备份还原单节点 1 远程备份: 优点: 一个节点可以备份所有节点,不用远程登录 缺点: 占用网络带宽与 redis 性能,备份相当于真实读取 redis 数据 1.1 备份 命令(redis-dump -u :password@host:port -d passwd > fileName.json)无密码可省略 123redis-dump -u 10.1.1.1:6379 -d passwd > 6379.jsonredis-dump -u 10.1.1.2:6380 -d passwd > 6380.jsonredis-dump -u 10.1.1.3:6381 -d passwd > 6381.json 执行完成命令之后 ,生成 3 个 json 文件,即为集群节点数据,为提升导入效率,可以将文件拷贝到目标集群机进行导入,也可以直接在本机导入。 1.2 还原 命令(cat filename.json | redis-load -u :password@host:por...
Redis 配置详解
1 基础配置 12345678910111213141516#带配置文件的启动方式cd /usr/local/redis./bin/redis-server redis.node1.6379.conf#将指定配置文件包含进当前配置文件include /usr/local/redis/redis-pub.conf#在redis配置文件中# 1k = 1000 bytes# 1kb = 1024 bytes# 1m = 1000000 bytes# 1mb = 1024*1024 bytes# 1g = 1000000000 bytes# 1gb = 1024*1024*1024 bytes# 并且这些单位字符不分大小写, 1MB 1mb 1mB 1Mb都是一样。 2 网络配置 123456789101112131415161718#绑定ipbind 0.0.0.0#绑定端口port 6379#是否保护模式#no,外部可以直接访问#yes则按照绑定ip、端口,如果设置了密码,还需匹配密码protected-mode yes#客户端连接,空闲多少秒关闭,0不关闭timeout 0#...
Redis 集群模式笔记
注意: 因为测试,我一个节点部署多个服务,生产环境建议分开不然会报 are on same IP,导致主从切换失败 1 使用场景 哨兵模式已经能够实现高可用,实践中通常是分布式服务,某一个点的分类数据放在指定的一个哨兵主从,通常也足够,但如果某个分类数据量实在过于庞大,哨兵+主从这种模式,相当于每个节点都是一个全量的数据副本,从高可扩方面来说,它这种模式不是很方便,对资源也是很大的浪费。当哨兵+主从遇到资源瓶颈,或者对高可扩有一定要求的时候,集群模式便能解决这个问题 高可用原理 Redis 集群模式是没有中心节点的,它至少需要 3 个 master 节点,每个 master 节点至少一个 slave(默认读),也就是至少 6 个节点才能组建集群模式,已经内置了数据分片和故障转移。 数据分片是 16384 个虚拟槽位分散到不同的 master 节点,设置 key 的时候,服务节点通过 key 的 hashcode % 16384,转发存放到不同的节点的对应分片槽位上。当查询请求到一个节点时,服务节点根据 key 检查槽位是否在当前节点,若存在则响应数据,若不...
Redis 杂七杂八
基本概念 Redis 是基于内存的数据库,读写内存数据是单线程完成的,官方提供测试数据,单线程支持 10w+ QPS,其主要原因以下几点: 单线程避免了多线程切换、竞争阻塞、锁,一个指令通常 1-4 微秒,单核 CPU 足够处理数十万请求 完全基于内存读写,数据存放于内存,查找和操作效率高于磁盘 多路 I/O 复用模型,采用 epoll 实现,一定程度上提高网络 I/O 吞吐性能 6.0 后支持多线程 I/O 模型,提高网络 I/O 瓶颈,内存数据操作仍然是单线程 多路 I/O 复用,多路复用机制是指在一个线程上处理多个网络 I/O 流,Redis 网络框架调用 epoll 机制,让 Linux 内核监听无数个套接字(Socket),每个监听套接字发生的不同事件,都进入事件队列,Redis 单线程对该事件队列进行处理并调相应的事件回调函数,Redis 本身无需一直轮询是否有连接请求。 1 单线程 单线程读写内存的缺点是无法发挥多核心的性能,可以在多核部署多个 Redis 实例避免浪费,或者利用容器机制,一个 Redis 容器分配 2 个核心足够。 对单线程...
记录一次pod访问不了外部服务
一, pod 访问外界服务时断时续 1 现象 环境: k8s calico 网络插件 BGP 模式 redis 单节点 问题: 部分 pod 与 redis 无法通信,telnet 端口不通,有这几种情况 b pod 一开始可以通 redis,我删了重构下,可能在 node1,也可能在 node2,但是再 Telnet redis 就不通了 d pod 一直访问不了 redis,我删了重构下,可能在 node1,也可能在 node2,但是再 Telnet redis 就通了 2 排查 2.1 路由 2.1.1 查看无法通信 pod 信息 123kubectl get pod -n test -owideNAME READY STATUS RESTARTS AGE IP NODEservice-21189-54f674b658-ksj2b 1/1 Running 1 13h 172.18.239.103 no...
Tekton进阶使用
上篇文章简单介绍了基础操作,但是还有些功能没提到参考 这篇文章实现了: 如何构建其他语言程序 挂载 configmap,不覆盖其他目录 git 触发部署 1 构建 npm 项目 这里我用自己博客为例,就不开源了 1.1 下载代码 git clone https://git.ccops.cc/Kubernetes/tekton.git 123456789101112131415161718192021222324252627282930313233cat tekton/cicd/build-push-image-task.yamlapiVersion: tekton.dev/v1beta1kind: Taskmetadata: name: build-push-imagespec: params: - name: pathToDockerfile description: The path to the dockerfile to build (relative to the context) default: Dockerfile ...
Kubernetes证书管理
参考文档 后面 traefik 自己集成了证书管理,参考文档后面补充 1 准备工作 先安装对应 webhook,这里我使用腾讯的 DNSPod,其它的从这里找 git clone https://github.com/qqshfox/cert-manager-webhook-dnspod.git 1.1 获取 apiID 与 apiToken 文档参考 访问这里创建并记录 2 部署 cert-manager 12345678910helm repo add jetstack https://charts.jetstack.iohelm repo updatehelm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ # 命名空间名称 --create-namespace \ # 自动创建命名空间 --version v1.7.2 \ # 版本 --set ingressShim.defaultIssuerName=letsencrypt-prod \ # 下面三个参数是自...
Tekton入门
Jenkins 不使用共享库的话 Pipeline 维护太困难,有学共享库的时间不如研究点新技术,早就想试试 tekton 了 1 介绍 其中Task、TaskRun、Pipeline、PipelineRun、PipelineResource、Condition作为其核心 CRD,这里主要介绍它们。 Task:定义构建任务,它由一系列有序 steps 构成。每个 step 可以定义输入和输出,且可以将上一个 step 的输出作为下一个 step 的输入。每个 step 都会由一个 container 来执行。 TaskRun:Task 用于定义具体要做的事情,并不会真正的运行,而 TaskRun 就是真正的执行者,并且会提供执行所需需要的参数,一个 TaskRun 就是一个 Pod。 Pipeline:顾名思义就是流水线,它由一系列 Tasks 组成。就像 Task 中的 step 一样,上一个 Task 的输出可以作为下一个 Task 的输入。 PipelineRun:Pipeline 的实际执行,创建后会创建 Pod 来执行 Task,一个 PipelineRun ...
如何在Kubernetes里使用Minio存储
1 部署驱动 minio 部署参考: 使用minion当blog图床 下载此目录所有文件 可以参考官网的,需要自己改镜像 12345678kubectl apply -f . -n miniokubectl get pod -n minioNAME READY STATUS RESTARTS AGEcsi-attacher-s3-0 1/1 Running 0 16hcsi-provisioner-s3-0 2/2 Running 0 16hcsi-s3-2dfnn 2/2 Running 0 16hcsi-s3-nn5pp 2/2 Running 0 16hcsi-s3-q9pln 2/2 Running 0 16h 2 Storageclass 创建 Secret 1234567891011cat ...
如何在Kubernetes里使用NFS存储
nfs 无法空间限额,相当于有个 provisioner 远程帮忙挂载 1 安装 nfs 客户端 最好每个节点都安装 yum -y install nfs-utils 1.1 测试 123showmount -e 10.1.1.1Export list for 10.1.1.1:/data/nfs_data * 2 部署驱动 下载此目录所有文件 2.1 修改配置 123456789101112131415161718192021222324252627282930313233343536373839cat deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nfs-client-provisioner labels: app: nfs-client-provisioner namespace: nfsspec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: n...











