kbytes, -m) unlimited open files (-n) 655350 pipe size (512 bytes, -p) 8 memory (kbytes, -v) unlimited file locks (-x) unlimited 1 2 3 4 5 6 7 8 3.2、datanode down后,hadoop集群的容错处理 模拟datanode进程down故障,观察hadoop集群的容错处理: 首先hadoop集群不会马上认定datanode已经dead, 注:这部分请参考spark on yarn故障运维https://blog.csdn.net/qq_35488412/article/details/91041983 1.1 磁盘故障对yarn nodemanager 场景4部分:具体细节请参见:spark on yarn故障运维:https://blog.csdn.net/qq_35488412/article/details/91041983 相关资料参考: NameNode
1)创建es集群的storage [root@k8s-master01 elk]# pwd /opt/k8s/k8s_project/elk [root@k8s-master01 elk]# mkdir -nkpdb 1/1 Running 0 4s 3)制作ES集群的镜像(jdk镜像、es镜像) 需要注意: ES 7.6.2启动要求jdk要在java11以上版本,否则 [root@k8s-master01 images]# docker push 172.16.60.238/wiseco/elasticsearch-7.6.2 4)部署ES集群容器 注意:这里使用初始化容器来修改系统参数 21 21:40 nodes 6)ES集群访问地址 ES集群在k8s内部访问地址:es-svc.wiseco.svc.cluster.local:9200 ES集群在k8s外部访问 需要配置ingress 集群外部访问此ES集群,访问地址为:http://elastic.kevin.com 7)ES集群连接和信息查看 可以登录到其中的一个es节点,进行es集群访问测试 [root@k8s-master01
dirname} fi scp -r ${dirname} slave1:/mnt/namenode_backup/ rm -r ${dirname} (2)配置crontab,定时执行此项工作 0 0,8,14,20 (二)数据备份 对于重要的数据,不能完全依赖HDFS,而是需要进行备份,注意以下几点 (1)尽量异地备份 (2)如果使用distcp备份至另一个hdfs集群,则不要使用同一版本的hadoop,避免hadoop 08,028 INFO org.apache.hadoop.hdfs.server.balancer.Balancer: 0 under utilized nodes: (2)均衡器将每个DN的使用率与整个集群的使用率接近
前面的文章介绍了MongoDB副本集和分片集群的做法,下面对MongoDB集群的日常维护操作进行小总结: MongDB副本集故障转移功能得益于它的选举机制。 MongoDB集群最多12个副本集节点,是因为没必要一份数据复制那么多份,备份太多反而增加了网络负载和拖慢了集群性能;而最多7个节点参与选举是因为内部选举机制 节点数量太多就会导致1分钟内还选不出主节点 2)MongoDB心跳 整个MongoDB集群需要保持一定的通信才能知道哪些节点活着哪些节点挂掉。 就算挂掉其中一台,只要还有存货, mongodb集群就不会挂掉。 shard,这就是传说中的分片了。 8)对于Secondary来说有几个比较重要的属性:Priority优先级、Vote投票节点、Hidden节点、Delayed节点 设定节点的优先级别(Priority) Priority=0 即优先级为
运维大规模K8S集群的注意事项 1 pod无法启动 有几个组件的pod,有的是deployment,有的是cronjob,运行了380多天了,突然有一天,这个pod就启动不起来了,一直在 #在pod的spec里面配置 enableServiceLinks: false 在k8s的默认配置中,会将svc的相关信息注入到pod中,而在pod进行启动init进程的时候,环境变量会作为参数传递进入 如果你架构上面做了双k8s的架构那还有挽救的可能,否则,你将毫无办法。 坑多了,其实压力也蛮大的,因为毕竟自己设计的自己运维,而且是大规模的集群,升级起来何其痛苦,要通知各种人,各种防御手段,一想到这,我就准备把同事嘎了,怎么他们就没阻止我。
可以将现有的 MySQL Server 实例转换为节点,并使用该节点作为基础运行集群。还可以从集群中分离任何节点并将其用作常规 MySQL 服务器实例。当执行查询时,它会在节点上本地执行。 】当前节点状态,值为4表示正常共有四个值:joining:节点正在加入集群doner: 节点处于为新加入节点提供全量数据时的状态joined: 当前节点已成功加入集群synced: 当前节点与集群中各节点是同步状态 ,且不是在同一时间退出的PXC集群中一半以上的节点因意外宕机而无法访问时,PXC集群就会停止运行但如果这些PXC节点是以安全下线的方式退出,则不会引发集群自动停止运行的问题,只会缩小集群的规模只有意外下线一半以上节点时集群才会自动停止 文件中的 safe_to_bootstrap 值改为1,所以在重启集群时,也是先启动最后一个退出的节点■ 如PXC节点都是同时意外退出的,则需要修改grastate.dat文件当集群所有节点正常运行时, grastate.datsafe_to_bootstrap: 1systemctl start mysql@bootstrap接着再依次正常启动其他节点:systemctl start mysql五、其他关于ProxySQL与keepalive的配置与运维
在k8s集群,我们通常通过 svc 做负载均衡来访问背后的 pod 实体,如果需要直接访问 pod 除了直接通过 pod IP 的方式还有什么方法呢? 首先我们需要知道,哪些对象具有DNS名字。 在k8s集群中每个Service都会有一个DNS名称,Services 包括两种,一种是普通的service服务,一种是 headless services。 普通的service 的DNS会解析到一个服务的集群IP,headless services 则会直接解析到所包含的pod的IP。 web-test 1/1 Running 0 2m 10.0.2.156 10.213.20.91 <none> <none> 我们在集群内通过 -2-156.nginx-test-headless.default.svc.cluster.local (10.0.2.156): icmp_seq=2 ttl=64 time=0.154 ms k8s
kubectl可以列出集群所有resource的详细。resource包括集群节点、运行的pod,ReplicationController,service等。 containerStatuses: - containerID: docker://bd7ebb1017042a5f7cfb20daf96d8517a238bcefc3b850591ba2ed8ef8ffea2b 在1.2之前,因为没有相应的命令支持,如果要维护一个节点,只能stop该节点上的kubelet将该节点退出集群,是集群不在将新的pod调度到该节点上。 20. label 为kubernetes集群的resource打标签,如前面实例中提到的为rc打标签对rc分组。 实际操作: 集群构成 一主三从的Kubernetes集群 ?
一 Node管理 1.1 Node隔离——方式一 在硬件升级、硬件维护等情况下,我们需要将某些Node隔离,使其脱离Kubernetes集群的调度范围。 指定为当前Kubernetes集群Master的地址,最后启动这些服务。 通过kubelet默认的自动注册机制,新的Node将会自动加入现有的Kubernetes集群中。 通过这种机制,Kubernetes实现了集群中Node的扩容。 示例1:基于kubeadm部署的Kubernetes扩容Node。 [root@k8smaster01 ~]# kubectl config use-context ctx-dev #将当前运行环境设置为ctx-dev 注意:运如上设置,当前的运行环境被设置为开发组所需的环境
>pool->pg->osd->disk 文件被分片成对象 对象存放于特定的pool pool由多个pg组成 pg对应多个osd osd直接对应disk 机器环境 4台centos7机器 默认最小集群是一个 release.asc 在admin节点部署 在admin节点安装部署工具 yum -y install ceph-deploy 创建部署文件目录 mkdir -p /etc/ceph cd /etc/ceph 创建一个集群 ceph-node2 ceph-node3 给每一个节点的keyring 增加 r 权限(各节点执行) chmod +r /ect/ceph/ceph.client.admin.keyring 检查集群状况
随着越来越多的业务选择HBase作为存储引擎,对HBase的可用性要求也越来越高,对于HBase的运维也提出了新的挑战。 目前运维集群超过30+,而且接入的业务类型繁多,对于性能要求也不完全一样,这是今年面临的问题。从15年开始,结合京东的业务情况,基于大数据平台,实现用户接入使用全流程自动化。 之前的运维经验,一般的做法就是stop balance,然后通过move region的方式把有影响的表移到某些机器上。 由于存在这个原因和业务的压力,往往只能采用拆分集群的方式,在一个HDFS 上往往运行几个HBase集群,但是带来的是运维成本的增加。 ? 最后我们把分组功能接入了BDP运维平台。DBA在配置实例的时候,根据业务选择不同的分组。通过rsgroup 解决拆分集群问题,可运维性也得到了提升。
其实最简单和合适的方法就是通过 operator 来安装这种具备自己一套机制的高可用应用,这里只是尝试用一种比较清晰的方式部署 kafka 来让大家了解 k8s 和 kafka 的运作机制。 PersistentVolumeClaim/PersistentVolume) istio gateway + virtualservice 主要这四个部分,分别涉及了 zk 和 kafka 的部署安装和对外通讯 构建 zookeeper 集群 leader port: 3888 protocol: TCP targetPort: 3888 selector: app: zookeeper-3 构建 kafka 集群 value: mp_post_slog:1:1 这里需注意说明下的是 advertised 相关的参数,advertised 会声明一个 broker 可访问地址,这里申明了两个,用于集群内和集群外访问使用 kafka-broker0.rcmd.svc.cluster.local port: number: 10000 测试脚本 用 python-kafka 在集群歪测试
截止目前我们选择了不升级集群。当然我们希望可以升级,但目前有更为紧迫的任务。实际上该如何实施升级尚未有定论,很可能选择创建另一个新的集群,而不是升级现有的。 每个月的硬件开销远大于运行在COLO中,但是云服务支持扩容集群到2倍,而几乎不用花费多少时间。 你可能会问,为何选择自己管理维护ES集群。 有了这么多的分片和节点,集群操作有时变得更特殊。比如,删除索引似乎成为集群master的能力瓶颈,它需要把集群状态信息推送给所有节点。 我们必须尝试公平分享ES集群的性能测试,从下列引文就可以看出。 不幸的是,当集群宕机的时候,不到三分之一的查询能成功完成。我们相信测试本身导致了集群宕机。 这看起来太夸张,却可以为我们降低3到4倍的CPU消耗和4到8倍的内存使用。
截止目前我们选择了不升级集群。当然我们希望可以升级,但目前有更为紧迫的任务。实际上该如何实施升级尚未有定论,很可能选择创建另一个新的集群,而不是升级现有的。 每个月的硬件开销远大于运行在COLO中,但是云服务支持扩容集群到2倍,而几乎不用花费多少时间。 你可能会问,为何选择自己管理维护ES集群。 有了这么多的分片和节点,集群操作有时变得更特殊。比如,删除索引似乎成为集群master的能力瓶颈,它需要把集群状态信息推送给所有节点。 我们必须尝试公平分享ES集群的性能测试,从下列引文就可以看出。 不幸的是,当集群宕机的时候,不到三分之一的查询能成功完成。我们相信测试本身导致了集群宕机。 这看起来太夸张,却可以为我们降低3到4倍的CPU消耗和4到8倍的内存使用。
通过 UI 轮换集群证书 在 Rancher 2.2.2 中,用户通过 UI 操作即可完成集群证书轮换了! 在 Rancher 2.0 和 2.1 中,Rancher 配置集群的自动生成证书的有效期为 1 年。 这意味着如果您在大约 1 年前创建了 Rancher 配置集群,那么 1 年后需要轮换证书,否则证书过期后集群将进入错误状态。 出于稳定性考虑,暂时移除了项目级别的监控,将在下一个版本中重新添加;集群级别的监控不受此影响。 修复了发布目录模板可能因证书错误而失败的问题。 修复了 Rancher 配置集群状态在带有前缀补丁的集群中被错误提取的问题。
截止目前我们选择了不升级集群。当然我们希望可以升级,但目前有更为紧迫的任务。实际上该如何实施升级尚未有定论,很可能选择创建另一个新的集群,而不是升级现有的。 每个月的硬件开销远大于运行在COLO中,但是云服务支持扩容集群到2倍,而几乎不用花费多少时间。 你可能会问,为何选择自己管理维护ES集群。 有了这么多的分片和节点,集群操作有时变得更特殊。比如,删除索引似乎成为集群master的能力瓶颈,它需要把集群状态信息推送给所有节点。 我们必须尝试公平分享ES集群的性能测试,从下列引文就可以看出。 不幸的是,当集群宕机的时候,不到三分之一的查询能成功完成。我们相信测试本身导致了集群宕机。 这看起来太夸张,却可以为我们降低3到4倍的CPU消耗和4到8倍的内存使用。某些修改很细微(比如 indices query ,但其他人可能要求我们完全重写查询执行。
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了! 写个shell去执行,浪费时间~~ 这种情况下,如果集群数量不多的话,选择一个轻量级的集群管理软件就显得非常有必要了。 ClusterShell就是这样一种小的集群管理工具,原理是利用ssh,可以说是Linux系统下非常好用的运维利器! ops-server2: 22:49:49 up 4 days, 14:24, 0 users, load average: 0.00, 0.01, 0.05 ops-server4: 22:49:42 up 8 ,等于-c --rcopy 表示从远程集群节点上拷贝文件或目录到本机上 --dest 前面表示本地要复制的文件或目录路径,后面表示远程机器的存放路径。
脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper 集群中有Leader节点。 zookeeper集群有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。 二、 Zookeeper 集群中的"脑裂"场景说明 对于一个集群,想要提高这个集群的可用性,通常会采用多机房部署,比如现在有一个由6台zkServer所组成的一个集群,部署在了两个机房: ? 这就相当于原本一个集群,被分成了两个集群,出现了两个"大脑",这就是所谓的"脑裂"现象。
PostgreSQL集群篇——常用的运维SQL 简述 本文主要是我日常使用的一些运维SQL和整理于互联网上的SQL,为了方便日常的使用,特把其汇总起来,遇到常用的时将会进行补充该文,欢迎大家在评论区进行提出一些常用的 as s where current_query <> '<IDLE>' and procpid IN (17637,123,321) --加入查找到的进程ID order by lap desc; 8、 n_live_tup > 100000 and seq_scan > 0 order by seq_tup_read desc limit 10; 9、通过pg_stat_statements插件定位涉及到第8条中表的查询 pg_index b where a.oid = b.indrelid and a.relname = 'cc'); SELECT c.relname,c2.relname, c2.relpages*8
资源申请和集群管理方式 为了更好的管理和维护,图数据库在运维部门集中运维管理。用户按需在工单平台中提交申请即可,工单中填写详细的资源需求数据和性能需求指标,由运维同学统一审核交付集群资源。 NebulaGraph 规范和架构设计 由于需要满足大量业务需求,未来会有大量的集群需要交付和维护。为了高效管理和运维规模化的集群,需要提前规划和制定规范。 61000 meta 端口;51000 ws_http_port;41000 ws_h2_port 62000 storage 端口;52000 ws_http_port;42000 ws_h2_port 运维规范 路径打包生成 rpm,作为标准安装包 图片 服务请求直接通过 DNS 和网关服务到 Graph,方便计算和存储服务直接交互,由于是通过 DNS 访问,不对外暴露 Meta 节点信息,可以更灵活的运维, 较少服务绑定 Meta 节点 ip 带来的运维代价。