当前位置: 首页 > news >正文

唐山模板建站系统广告营销行业

唐山模板建站系统,广告营销行业,设计师个人网页设计,科技类网站风格Longhorn跨AZ实现存储高可用 longhorn基础组件功能及其作用这里就不做介绍了 方案一 Longhorn跨AZ的高可用的就是一个PVC的replicas 均匀打散的不同的AZ区域之间#xff0c;这样当某个AZ挂掉后#xff0c;engine会立即使用另外一个数据副本#xff0c;并重建这个副本这样当某个AZ挂掉后engine会立即使用另外一个数据副本并重建这个副本但是目前的关键点是如何将replica均匀打散到不同的AZ区域 为保证最大程度上的跨AZ数据高可用这里列出关于longhorn关键参数(仅供参考) # replica-soft-anti-affinity是否允许replica跑在使用pv的节点上# default-replica-count 设置pv数据副本个数# default-data-locality是否允许replica跑在使用pv的节点上# auto-salvage当所有副本挂掉时候允许longhorn找出可用的副本# auto-delete-pod-when-volume-detached-unexpectedly如果启用当Longhorn卷意外分离(例如Kubernetes升级、Docker重启或网络断开)时Longhorn将自动删除由控制器管理的工作负载pod。通过删除pod其控制器将重新启动pod, Kubernetes将处理卷的重新连接和重新挂载# disable-scheduling-on-cordoned-node禁止在cordon节点安排replica# replica-zone-soft-anti-affinity 实现跨AZ高可用关键参数允许将卷的新副本调度到与现有健康副本相同区域中的节点。不属于任何Zone的节点将被视为属于同一个Zone。注意Longhorn依赖于标签拓扑。topology.kubernetes.io/zoneZone name of the node方案二 使用longhorn的backup/restore功能但是随着数据量的增加RTO时间具体需要多久待测试且由于backup是定时或某个时刻手动触发的RPO大小取决于备份完成后到发生故障这段时间具体产生了多少数据。且用户是否能容忍丢失这个数据量 验证略 方案一验证 验证跨区域高可用(这里我们用topology.kubernetes.io/zone来模拟不同的zone)Longhorn需要开启replica-zone-soft-anti-affinity参数实现replica跨AZ数据同步这里仅验证replica在某个AZ down是否可用某个AZ内replica down了实测是会重构replica这里不做验证了 # 查看k8s节点 ╰─ kubectl get nodes -o custom-columnsNAME:.metadata.name,LABELS:.metadata.labels NAME LABELS k8s-master-1 map[beta.kubernetes.io/arch:arm64 beta.kubernetes.io/os:linux kubernetes.io/arch:arm64 kubernetes.io/hostname:k8s-master-1 kubernetes.io/os:linux] k8s-node-1 map[beta.kubernetes.io/arch:arm64 beta.kubernetes.io/os:linux kubernetes.io/arch:arm64 kubernetes.io/hostname:k8s-node-1 kubernetes.io/os:linux] k8s-node-2 map[beta.kubernetes.io/arch:arm64 beta.kubernetes.io/os:linux kubernetes.io/arch:arm64 kubernetes.io/hostname:k8s-node-2 kubernetes.io/os:linux] k8s-node-3 map[beta.kubernetes.io/arch:arm64 beta.kubernetes.io/os:linux kubernetes.io/arch:arm64 kubernetes.io/hostname:k8s-node-3 kubernetes.io/os:linux]# 设置节点zonekubectl label nodes k8s-master-1 k8s-node-1 topology.kubernetes.io/zoneone --overwritekubectl label nodes k8s-node-2 k8s-node-3 topology.kubernetes.io/zonetwo --overwrite# 测试YAML ╰─ cat mysql.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: mysql-pvcnamespace: devops spec:storageClassName: longhornaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi --- apiVersion: apps/v1 kind: Deployment metadata:name: mysqlnamespace: devops spec:selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- image: docker.io/library/mysql:8.2name: mysqlenv:- name: MYSQL_ROOT_PASSWORDvalue: passwordports:- containerPort: 3306name: mysqlvolumeMounts:- name: datamountPath: /var/lib/mysqlvolumes:- name: datapersistentVolumeClaim:claimName: mysql-pvc ---通过上图我们可以发现 我们事先打的zone标签longhorn识别了我们在创建mysql后查看pv信息可以发现replica分布在二个不同的ZONE区域 # 生成1000条数据 cat 1.sql EOF CREATE DATABASE test_bai; USE test_bai; CREATE TABLE app_user(id INT NOT NULL AUTO_INCREMENT COMMENT 主键,name VARCHAR(50) DEFAULT COMMENT 用户名称,email VARCHAR(50) NOT NULL COMMENT 邮箱,phone VARCHAR(20) DEFAULT COMMENT 手机号,gender TINYINT DEFAULT 0 COMMENT 性别0-男 1-女,password VARCHAR(100) NOT NULL COMMENT 密码,age TINYINT DEFAULT 0 COMMENT 年龄,create_time DATETIME DEFAULT NOW(),update_time DATETIME DEFAULT NOW(),PRIMARY KEY (id) )ENGINE INNODB DEFAULT CHARSET utf8 COMMENTapp用户表; SET GLOBAL log_bin_trust_function_creatorsTRUE; DELIMITER $$ CREATE FUNCTION mock_data() RETURNS INT BEGINDECLARE num INT DEFAULT 1000;DECLARE i INT DEFAULT 0;WHILE i num DOINSERT INTO app_user(name,email,phone,gender,password,age)VALUES(CONCAT(用户,i),2548928007qq.com,CONCAT(18,FLOOR(RAND() * ((999999999 - 100000000) 1000000000))),FLOOR(RAND() * 2),UUID(),FLOOR(RAND() * 100));SET i i 1;END WHILE;RETURN i; END; SELECT mock_data(); EOF# 导入数据 bash-4.4# mysql -uroot -ppassword 1.sql mysql: [Warning] Using a password on the command line interface can be insecure. mock_data() 1000将k8s-node-3/k8s-node-2节点关机(模拟zone-two down,mysql目前也跑在这个zone) # 等待controller-manager驱逐mysql后在zone-one启动mysql ╰─ kubectl get pods -n devops -o wide | grep mysql mysql-7bc9bc8b55-g7jn8 1/1 Running 0 118s 172.16.1.85 k8s-node-1 none none# mysql 调度到k8s-node-1后查询数据量大小 bash-4.4# mysql -uroot -ppassword -e use test_bai; select count(*) from app_user; mysql: [Warning] Using a password on the command line interface can be insecure. ---------- | count(*) | ---------- | 1000 | ----------通过上述测试我们可以发现 当zone-two down后pv的replica被标志为失败且会在zone-one找一个节点去复制pv的replica来保证replica2(即使我们配置了replica不能在同一个zone)数据量大小也一致(未发生数据丢失)这里仅做了小数据验证 注意节点异常-apiserver感知-controller-manager驱逐mysql是存在一段间隔时间的(取决于controller-manager和kubelet上报节点状态信息间隔等参数)这段时间实际上是无法访问的
http://www.hkea.cn/news/14590637/

相关文章:

  • 大石桥做网站wordpress内存占用大
  • 枣阳做网站大连企业名录大全
  • 邯郸网站设计价格和什么人合作做游戏视频网站
  • 网站后台功能开发seo是怎么优化推广的
  • 网站开发要懂英文吗科技制作网站
  • 建立导购网站推动高质量发展为主题
  • 如皋网站设计公司业务管理系统
  • 做商城类网站空间怎么买网站模板大全官网
  • 网站搭建分站需要多少钱销售型网站建设
  • 国外唯美flash个人网站欣赏网站建设前提
  • 库尔勒网站建设推广自建网站 备案
  • 紫搜做网站邮箱域名和网站域名
  • 免费建站的平台我的网站百度搜不到
  • 冠辰网站什么网站专做店铺
  • 宿迁华夏建设集团网站15个平面设计图素材网站
  • 网站建设技巧饣金手指排名27网站首页没有收录
  • 西安专用网站建设wordpress全站加速
  • html5个性个人网站济南最好的网站制作公司
  • 网站建设打造在民办医院做网站编辑怎么样
  • 中英文网站建设的差别郑州小程序开发制作公司
  • qq空间个人网站电商类网站建设需要多少钱
  • 门图书馆户网站建设方案多少工资
  • 企业网站建设有几种形式在线图片编辑尺寸大小
  • 做跨境电商一件代发的网站网站开发的费用是怎么计算的
  • 网站开发与app开发原理jsp做的网站可以用的
  • 搜索品牌价值的网站青岛房产网站建设
  • 新建网站怎么做wordpress和ss一起
  • 工程行业网站哪些网站是做货源的
  • 深圳龙华汽车站附近有做网站建设的甘肃网站建设推广服务
  • 站长查询seo是什么意思山西大同专业网站建设价格