1 问题描述需求:每天3点到3点半进行数据备份,会对磁盘IO和网络产生较大影响,希望能够静默屏蔽掉。alertmange可以通过静默(Sliences)实现告警屏蔽,但只能选择一段时间,无法实现重复在每天的指定时间段静默告警。解决办法:通过脚本调用alertmanager api接口生成静默规则,将脚本定时执行,以实现上述功能需求,具体的做法就是通过crontab定时执行脚本,通过对alertma
1 Dashboard介绍kubernetes Dashboard项目为Kubernetes集群提供了一个基于web的UI,支持集群管理、应用部署及故障排查等功能。Dashboard是以Pod方式运行在集群上,项目包含了前端和后端两个组件。前端: 运行于客户端浏览器,它使用标准的HTTP/HTTPS方法,将请求发送到后端并从后端获取业务数据;后端: 负责接收前端的请求,将数据请求发送到远程后端(例
1 问题描述备份报错:"mysqldump: Got error: 1449: The user specified as a definer ('zhangsan'@'%') does not exist when using LOCK TABLES"主要原因是当时创建view 、procedure 或者trigger使用的用户发生了变化(修改或删除),通过可视化查看 information_s
1 集群搭建1、创建安装目录mkdir /app/module -p2、解压缩安装tar -xf apache-cassandra-3.11.16-bin.tar.gz -C /app/module/mv /app/module/apache-cassandra-3.11.16/ /app/module/cassandra3、jdk安装这里使用的是系统自带的openjdk4、创建数据目录mkdir
1 通信地址汇总1.1 listen_address默认是localhost。该配置是为了告诉集群中其他节点如何连接到该节点上。如果配置cassandra多实例集群,就必须配置。可以设置为空。Cassandra通过InetAddress.getLocalHost()可以从系统获取本地地址。如果Cassandra找不到正确的地址,你可以指定IP地址或者主机名称。如果是单节点集群,你可以使用默认配置(
1 _bz2ModuleNotFoundError: No module named '_bz2'这个错误表明 Python 在尝试导入 bz2 模块时未能找到 _bz2 库,这是 bz2 模块的底层实现。通常,这种问题发生在 Python 安装时没有正确配置 bzip2 库.yum install bzip
6 Ingress灰度发布6.1 灰度发布介绍Ingress实现灰度发布可以基于权重,也可以基于用户请求来实现。基于权重发布灰度版本的annotations nginx.ingress.kubernetes.io/canary: "true" nginx.ingress.kubernetes.io/canary-weight: "30"基于Header发布灰度版本的annotations ngin
5 Ingress自定义配置5.1 Basic Authentication文件名必须为auth(actually - that the secret has a key data.auth),otherwise the ingress-controller returns a 503.参考地址https://kubernetes.github.io/ingress-nginx/examples/
4 Ingress资源4.1 基于URL实现路由将来自同一域名,不同URL调度到不同Service。4.1.1部署nginx应用#编写资源清单 vim nginx-service.yaml apiVersion:apps/v1 kind:Deployment metadata: name:nginx namespace:default spec: replicas: 2 selec
1 Ingress基本概念1.1 为何需要Ingress使用NodePort类型的Service可以将集群内部服务暴露给集群外部客户端,但使用这种类型Service存在如下几个问题:一个端口只能一个服务使用,所有通过NodePort暴露的端口都需要提前规划;如果通过NodePort暴露端口过多,后期维护成本太大,且不易于管理;目前Service底层使用的Iptables、IPVS,仅支持
10 guestBook案例实践10.1 场景描述1、启动Redis领导者2、启动两个Redis跟随者3、启动并公开GuestBook服务,数据写入Redis master节点,数据读取统一写入Redis Slave节点3.1 如果GET_HOSTS_FROM设置为env,则需要手动传递Redis Master、以及Slave的Service名称REDIS_LEADER_SERVICE_HOST
9 Headless Service9.1 什么是HeadlessHeadlessService也叫无头服务,就是创建的Service没有ClusterIP,而是为Service所匹配的每个Pod都创建一条DNS的解析记录,这样每个Pod都有一个唯一的DNS名称标识身份,访问的格式如下$(service_name).$(namespace).svc.cluster.local。9.2 Headle
8 服务发现当Pod需要访问Service时,通过Service提供的ClusterIP就可以实现了,但是有几个问题Service的IP不稳定,删除重建会发生变化;ServiceIP难以记忆,如果能通过一个固定的名称访问更好;为了解决这样的问题,kubernetes引入了环境变量和DNS两种方案来解决这个问题环境变量方式: 通过特定的名称,将环境变量注入到Pod的内部;DNS方式: 通过APISe
7 Service模型分析访问Service会出现如下4种情况:1、Pod-A --> Service --> 调度 --> Pod-B/Pod-C2、Pod-A --> Service --> 调度 --> Pod-A3、Docker --> Service --> 调度 --> Pod-B/Pod-C4、NodePort --> Se
6 Service字段参数6.1 sessionAffinity如果要将来自于特定客户端的连接调度至同一Pod,可以使用sessionAffinity基于客户端的IP地址进行会话保持。还可以通过sessionAffinityConfig.clientIP.timeoutSeconds来设置最大会话停留时间。(默认10800秒,即3小时)。1、编写yamlvim nginx-service-sess
1 Service基本概念1.1 什么是Service在kubernetes中,Pod是应用程序的载体,当我们需要访问这个应用时,可以通过Pod的IP进行访问,但是这里有两个问题:Pod的IP地址不固定,一旦Pod异常退出、节点故障,则会造成Pod发生重建,一旦发生重建客户端则会访问失败;Pod如果扩展多份,会造成客户端无法有效使用新增Pod,如果Pod进行缩容又会造成客户端访问错误;为
1 概述使用python抓取grafana的panel图片,生成运维日报官方有个插件叫grafana-image-renderer,能直接渲染图片,生成图片链接,只需要python爬虫抓取该链接,保存图片即可2 安装grafana-image-renderer2.1 环境说明操作系统Centos7.9,当前grafana使用rpm安装的grafana-enterprise-10.3.1-1.x86
1 Grafana面板介绍1.1 什么是面板面板(Panel)是Grafana中最基本的可视化单元,每一种类型的面板都提供了相应的查询编辑器(Query Editor),让用户可以从不同的数据源(如prometheus)中查询出相应的监控数据,并且以可视化的方式展示,所以要在Grafana上创建可视化的图表。1.2 能创建哪些面板Grafana提供了各种可视化来支持不同的用力,目前内置支持的面板包
1 Secret基本概念1.1 什么是SecretSecret是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用Secret意味着你不需要在应用程序代码中包含机密数据。由于创建Secret可以独立于使用它们的Pod, 因此在创建、查看和编辑Pod的工作流程中暴露Secret(及其数据)的风险较小。Secret类
1 ConfigMap基本概念1.1 什么是ConfigMapConfigMap是一种API对象,用来将非机密性的数据保存到键值对中。使用时,Pod可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap将你的环境配置信息和容器镜像解耦,便于应用配置的修改。1.2 ConfigMap应用场景使用 k8s 部署应用,当你将应用配置写进代码中,更新配置时也需要打包
1 StatefulSet基本概述StatefulSet是为了管理有状态服务的问题而设计的。扩展:有状态服务?StatefulSet是有状态的集合,管理有状态的服务,它所管理的Pod的名称不能随意变化。数据持久化的目录也是不一样,每一个Pod都有自己独有的数据持久化存储目录。比如MySQL主从、redis集群等。无状态服务?RC、Deployment、DaemonSet都是管理无状态的服务,它们所
1 为什么不能进行有效的计数数据分布和分片cassandra是分布式架构嘛,所以cassandra将数据分布在了多个节点上,并且使用了分片(sharding) 来处理大量的数据,这意味着数据分散存储在了不同的节点上,要计算总行数时,就需要从所有节点检索并汇总计数,这期间涉及到了网络通信和数据传输,导致了查询变得非常耗时。分布式一致性cassandra强调分布式系统中的高可用性和分区容忍性,为了实现
1 什么是CronJobCronJob通过重复调度启动一次性的Job。2 CronJob基础资源清单编写apiVersion: batch/v1beta1 #当前资源使用的api版本 kind: CronJob #资源类型 metadata: #元数据 name: #资源名称 namespace: #名称空间 spec: #规格,描述对象的期望状态 concurrencyPolicy:
1 Job基本概念1.1 什么是JobJob控制器常用于管理那些运行一段时间就能够完成的任务,例如离线数据分析,数据备份等,当任务完成后,由Job控制器将该Pod对象置于Complete完成状态,在完成一定时间后,当达到了用户指定的生存周期,由系统自动删除该任务。如果,容器中的进程因错误而终止,则需要依赖RestartPolicy配置来确定是否重启,如果是因为节点故障造成Pod意外终止的话,会被重
1 DaemonSet 控制器:概念、原理解读1.1 概述DaemonSet控制器能够确保k8s集群所有的节点都运行一个相同的pod副本,当向k8s集群中增加 node节点时,这个node节点也会自动创建一个pod副本,当node节点从集群移除,这些pod也会自动删除;删除Daemonset也会删除它们创建的pod。1.2 工作原理:如何管理 Pod?daemonset的控制器会监听kubernt
1 Deployment概述Deployment是kubernetes中最常用的资源对象,为ReplicaSet和Pod的创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态,通过定义一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod,删除Dep
1 Replicaset控制器:概念、原理解读1.1 Replicaset概述ReplicaSet是kubernetes中的一种副本控制器,简称rs,主要作用是控制由其管理的pod,使pod副本的数量始终维持在预设的个数。它的主要作用就是保证一定数量的Pod能够在集群中正常运行,它会持续监听这些Pod的运行状态,在Pod发生故障时重启pod,pod数量减少时重新运行新的Pod副本。 官方推荐不要直
1 什么是Downward API有两种方法可以将Pod和容器字段暴露给运行中的容器:环境变量和由特殊卷类型承载的文件,这两种暴露Pod和容器字段的方法统称为Downward API。Downward API可以让容器获取Pod的相关元数据信息,比如Pod名称,Pod的IP,Pod的资源限制等,获取后通过env、volume方式将相关的环境信息注入到容器中,从而让容器通过这些信息,来设定容器的运行
1 什么是QoSQoS(Quality of Service),可以理解为"服务质量等级",或者"服务质量保证",是作用在Pod上的一个配置。当kubernetes创建一个Pod时,根据Pod的容器指定的资源约束为每个Pod设置QoS等级。Kubernetes依赖这种分类来决定当Node上没有足够可用资源时要驱逐哪些 Pod。在kubernetes的环境中,kubernetes允许节点的Pod过载
1 thanos集群信息1.1 集群架构我们在上面的两个Prometheus的节点服务器中部署Sidercar,用于获取监控数据。同时,配置历史数据写入到对象存储中进行持久化保存。部署一个Store Gateway对接对象存储,而Compactor组件会定时对存储中数据进行压缩索引及降采样操作。Querier做为面向用户的组件,对接Sidercar和Store Gateway获取数据并进行展示。1
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号