- 博客(1811)
- 收藏
- 关注
原创 Vue Kubernetes项目 局部布局面包屑 el-breadcrumb
这种一项一项手写面包屑的方法带来了很多重复性工作,比如每个页面中都需要写一遍“首页”的面包屑,所有“活动管理”下的所有页面,也都需要写一遍“活动管理”。这时如果路由需要调整,那么所有页面的面包屑都要进行修改,非常繁琐。因此如果可以自动生成面包屑,就能够减轻很多重复性工作,也方便代码维护。
2025-03-29 14:17:07
1262
转载 Kubernetes Pod OOM 和 CPU 限制
中看到的,当我们想要限制进程的资源消耗时,设置限制或请求非常重要。不过,请注意不要将总请求设置为大于实际 CPU 大小,因为这意味着每个容器都应该有一定数量的 CPU。实际上,如果所有容器使用的内存多于请求的内存,则可能会耗尽节点中的内存。通过设置不切实际的限制或过度使用,您可能不会意识到您的进程受到限制,并且性能受到影响。限制是设置节点中资源最大上限的一种方法,但需要谨慎处理,因为最终可能会导致进程被限制或终止。云应用程序中的 CPU 和内存要求变得越来越重要,因为它们与您的云成本直接相关。
2024-12-10 10:55:32
3961
原创 如何导出和导入Grafana仪表盘
您可以使用导出导入Grafana仪表盘功能对Grafana仪表盘进行备份,或将仪表盘从一个Grafana实例迁移到另一个实例中。本文介绍如何导出和导入Grafana仪表盘。
2024-12-04 15:48:39
5574
原创 CoreDNS Plugins ---> hosts 添加hosts解析记录
虽然格式"172.30.200.21 172.30.200.22 172.30.200.23 kubenode1"可以正常下发configmap资源,但只有第一个ip生效。通过coredns的hosts插件配置kubernetes集群的dns服务,使集群内部可通过hostname/域名访问外部服务。kubernetes集群外部有少量服务,kubernetes集群内部pod需要通过服务所在的主机的hostname访问服务。# 省略了”FILE“,"ZONES"等字段。# ping外部hostname。
2024-10-08 16:40:33
5247
原创 Alertmanager 路由匹配
2、第二种方式则基于正则表达式,通过设置match_re验证当前告警标签的值是否满足正则表达式的内容。当前告警中是否存在标签labelname并且其值等于labelvalue。1、一种方式基于字符串验证,通过设置。告警的匹配有两种方式可以选择。
2024-09-26 17:48:24
2605
原创 你真的理解 Kubernetes 中的 requests 和 limits 吗?
为了实现 Kubernetes 集群中资源的有效调度和充分利用, Kubernetes 采用requests和limits两种限制类型来对资源进行容器粒度的分配。每一个容器都可以独立地设定相应的requests和limits。这 2 个参数是通过每个容器 containerSpec 的 resources 字段进行设置的。一般来说,在调度的时候requests比较重要,在运行时limits比较重要。
2024-09-09 18:03:30
2749
原创 kubernetes Pod failed to create fsnotify watcher: too many open files
fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。单个进程能够打开的文件描述符总数的限制。当前系统可打开的最大数量指定用户可以打开的最大数量。
2024-09-06 10:20:17
3033
1
原创 prometheus cadvisor 容器相关指标
3、 container_cpu_user_seconds_total与container_cpu_system_seconds_total的总和,代表容器占用CPU的总和。6、 查询容器相关的 数据:查询所有POD的1min内CPU使用情况,用到的数据指标是k8s通过request(下限)和limit(上限)限制容器的CPU和内存的使用范围,在容器运行的过程中需要实时监控容器对cpu的使用情况。1、 容器用户态占用CPU的时间总和。
2024-09-04 10:17:25
3847
原创 Kubernetes 如何给pod的 /etc/hosts文件里面添加条目
上面就是可以将aa/bb.local可以解析为10.1.1.1的地址。cc/dd.local就可以解析为10.1.1.2的地址。可不可以在创建pod的时候指定一些条目在hosts里面?创建pod的时候,pod会在其/etc/hosts里面添加一个条目。这样就完成添加hosts解析了!
2024-08-21 21:31:12
2172
原创 JavaScript getElementById 使用方法
在JavaScript中,document.getElementById()是一种用于通过元素的id属性获取DOM元素的方法。它的作用是返回与指定id匹配的HTML元素。使用document.getElementById()可以通过元素的id属性直接获取该元素的引用,在标签上定义一个ID,然后JS基于这个ID去调用它。然后可以使用该引用对元素进行各种操作。(1) 修改元素的内容或属性。(3)获取表单元素的值。(2)添加事件监听器。
2024-08-14 16:53:41
4108
原创 kubernetes Pod在容器内获取Pod信息
从日志中我们可以看到Container的requests.cpu、limits.cpu、requests.memory、limits.memory等信息都被正确保存到了Pod的环境变量中。注意valueFrom这种特殊的Downward API语法,目前resourceFieldRef可以将容器的资源请求和资源限制等配置设置为容器内部的环境变量。从日志中我们可以看到Pod的IP、Name及Namespace等信息都被正确保存到了Pod的环境变量中。◎ requests.cpu:容器的CPU请求值。
2024-08-10 15:58:59
2714
原创 nginx 405错误是什么意思
当Web服务器收到一个它不支持的HTTP请求方法时,就会返回405错误。405错误通常是由于客户端发出了不兼容或不支持的HTTP请求方法。例如,客户端可能请求一个只能通过GET方法访问的资源,但使用了POST方法。要解决405错误,需要确保客户端发送正确的HTTP请求方法。可以查看服务器文档或使用HTTP请求测试工具来确定正确的请求方法。
2024-08-07 11:27:34
3755
原创 JVM 性能测试分析工具: jps、jstack、jmap、jhat、jstat、hprof 使用详解
今天这篇文章,我们来一起聊聊在做性能测试常用到的性能分析工具。这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的JVM性能调优监控工具进行介绍,希望能起抛砖引玉之用。
2024-07-31 17:03:04
3292
原创 RocketMQ 搭建
Producer:消息的发送者;举例:发信者Consumer:消息接收者;举例:收信者Broker:暂存和传输消息;举例:邮局NameServer:管理Broker;举例:各个邮局的管理机构Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接受者可以订阅一个或者多个Topic消息Message Queue:相当于Topic的分区;用于并行发送和接收消息。
2024-07-19 09:58:42
3281
原创 8个步骤彻底清理Docker镜像
镜像积累如山,不仅占用宝贵的磁盘空间,还可能给我们的工作带来不便。今天,就让我带大家深入了解如何高效清理 Docker 镜像,保持我们的开发环境干净整洁。通过上面的分享,相信大家已经对如何清理 Docker 镜像有了更加全面和深入的认识。检查一下这些镜像,评估哪些是必要的,哪些是可以删除的。如果有一系列复杂的清理规则,我们可以编写一个简单的脚本来自动化这个过程。上面的命令会删除所有创建时间超过168小时(7天)的镜像。这样我们可以直观地看到哪些镜像占用空间较大,然后手动删除。那么,今天的内容就到这里。
2024-07-17 17:59:13
4175
原创 JVM 调优参数
XX:TargetSurvivorRatio表示,当经历Minor GC后,survivor空间占有量(百分比)超过它的时候,就会压缩进入老年代(当然,如果survivor空间不够,则直接进入老年代)。而新生代是用来存放新创建的对象,大小是随着堆大小增大和减少而有相应的变化,默认值是保持堆大小的十五分之一,-Xmn参数就是设置新生代的大小,也可以通过-XX:NewRatio来设置新生代与年老代的比例,java 官方推荐配置为3:8。所以如果设置新生代大小的调整,则需要严格的测试调整。在jdk5以上的版本,
2024-07-17 09:19:22
2975
原创 ES证书过期替换方案
1.批量下发证书,从各个节点日志可以看出,证书已更新2.集群中的某个节点,重启时,如果自己的证书和其他节点不一致,可以启动但是无法被其他节点识别,无法加入集群直接替换证书,自动就被其他节点识别到,然后节点正常加入集群3.查询命令:查询证书过期验证证书是否有效。
2024-07-13 17:07:57
3603
原创 【无标题】
在所有node节点下,在 /etc/elasticsearch 目录中创建 certs 文件夹将elastic-certificates.p12 文件拷贝到certs 目录下(注:是所有的node节点对应的/etc/elasticsearch/certs)此时,我们还不知道密码是多少,之前都是一路回车的。访问:Kibana,查看认证情况:需要先编辑Kinaba的配置文件(),设置elasticsearch的密码后,重启kibana。如下,按照提示,依次输入和确认密码即可。进入bin目录,执行。
2024-07-13 15:23:23
2184
原创 APIServer 认证 ServiceAccount
的SerivceAccount后,我们来看一下这个ServiceAccount的内容。我们按照前面yaml文件创建Pod,那么apiserver将会把该ServiceAccount的Secret挂载到Pod的路径。然后,然后apiserver的serviceaccount认证器拿到这个ServiceAccountToken后,利用参数。从外部访问Apiserver的安全端口时,客户端需要携带一个身份凭证,能够让apiserver认证为某个用户以及所属的组。我们来看一下这个Secret的内容,如下。
2024-07-12 09:43:13
2604
原创 Kubernetes APIServer 几种基本认证方式
在上文中,用户A在发起API请求时,管理员如何道该请求是用户A发起的呢?所以,客户端在发起API请求时,必须要携带一个身份信息来表明"我是谁",Apiserver在收到请求后,需要对这个身份信息进行认证(“不是你说你是谁,你就是谁,而是我核实你是谁,你才是谁”)apiserver可以通过启动参数--basic-auth-file=/path/to/file来开启密码认证,该文件的每一行如下:第一个字段为密码,第二个为用户名,第三个为用户id,后面为组名(可选,如果有多个组,则需要用双引号引起来)
2024-07-10 11:31:55
2230
原创 Kubelet 认证
然后apiserver访问kubelet,检测这个用户与组的权限。,所有通过认证的请求(包括通过认证的匿名请求)有权限访问kubelet所有的API。这显然是不合理的,所以我们需要像apiserver那样对不同的请求赋予不同的权限。如果要拒绝将匿名请求认证为以上的用户与组,配置kubelet的如下启动参数,那么匿名请求就会认证失败。,且还要提供一定的认证与授权机制,防止任何知道kubelet端口的人都能访问它的API。kubelet与apiserver的API不一样,当访问kubelet的API时,
2024-07-09 14:07:59
2341
原创 HTTP 协议中的数据压缩 Accept-Encoding Content-Encoding
是提高 Web 站点性能的一种重要手段。对于有些文件来说,高达 70% 的压缩比率可以大大减低对于带宽的需求。随着时间的推移,压缩算法的效率也越来越高,同时也有新的压缩算法被发明出来,应用在客户端与服务器端。在实际应用时,web 开发者不需要亲手实现压缩机制,浏览器及服务器都已经将其实现了,不过他们需要确保在服务器端进行了合理的配置。
2024-06-19 17:54:16
2843
原创 HTTP 重定向 状态码3xx
http状态码301代表永久重定向。当服务器收到客户端的请求时,会将其重定向到另一个url,而不是返回请求的资源。通常用于以下情况:1、当网站的url结构发生变化或网站迁移到新的域名时。2、当网站上存在重复内容时,可以使用301状态码将所有重复的url重定向到一个主要的url。3、当网站的某个页面不再存在时,可以使用301状态码将该页面的url重定向到一个现有的页面等等。(也称为URL 转发是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。
2024-05-24 14:55:09
2803
原创 Prometheus 服务发现 添加标签
中添加标签可以采用Relabel Config的方式,通过在配置文件中编写relabel_config模块来定义要给哪些目标添加标签,该模块可以实现筛选、替换、修剪、添加等不同的转换操作。已经加载了新的配置文件。
2024-05-14 18:34:31
2435
原创 Docker nsenter 命令使用
有些时候容器里面要做一些debug,缺一些工具,可以登入到主机上面进入到容器的namespace里面去看其网络配置,看其端口监听。$ nsenter --target 上面查到的进程id --mount --uts --ipc --net --pid。容器看到的是可以通过在主机上面nsenter看到的。* –user参数是进入到user namespace中 (用户和用户组)* –pid参数是进入到pid namespace中 (进程编号)查看容器对应宿主机上面的pid,容器技术的实质是进程,
2024-05-09 14:32:41
2113
原创 linux df -h 命令卡住 解决方法
1、首先就是使用strace去追踪到底在哪里卡住了。用 df -h 查看磁盘情况,无奈卡住无法显示。2、如果没有strace命令则进行安装即可。3、显示出卡住的地方。
2024-05-08 13:56:41
1773
原创 kubectl top用法
kubectl top命令是Kubernetes的一个子命令,用于查看集群中各个资源对象的CPU和内存使用情况。通过kubectl top命令,我们可以实时监控集群中各个Pod、Node资源对象的资源消耗情况,从而进行性能调优和资源管理。
2024-04-30 15:28:30
1804
原创 Kubernetes 弃用Docker后 Kubelet切换到Containerd
如果你使用了云服务商提供的托管 Kubernetes 服务,那你不用担心,像 GKE、AKS 等云服务商都已经在新版集群中把默认的运行时切换到 containerd。Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。可以发现,容器运行时已经切换到了 containerd,其版本为 1.4.3。那对于那些自管的集群,又如何把容器运行时从 Docker 切换到 Containerd 呢?
2024-04-30 10:27:31
1676
2
原创 Kubelet containerd 管理命令 ctr常用操作
导入可能会出现类似于 ctr: content digest sha256:xxxxxx not found 的错误,要解决这个办法需要 pull 所有平台镜像。--all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构。把已下载的容器镜像挂载至当前文件系统,是为了方便查看镜像中包含的内容。同时导出可以使用--platform导出其它平台的(例如arm)--all-platforms为导出所有平台。-q 只打印镜像名称。
2024-04-30 09:58:12
2393
原创 Prometheus Metrics指标类型 Gauge(仪表盘)
指标是用来衡量性能、消耗、效率和许多其他软件属性随时间的变化趋势。它们允许工程师通过警报和仪表盘来监控一系列测量值的演变(如CPU或内存或磁盘使用量请求持续时间、延迟等指标在IT监控领域有着悠久的历史,并被工程师广泛使用,与日志和链路追踪一起被用来检测系统是否有不符合预期的表现。Prometheus收集的指标有四种,作为其暴露格式的一部分CountersGaugesHistogramsSummaries。
2024-04-26 15:37:52
2876
原创 JavaScript 数据类型 对象概述
对象(object)是JavaScript语言的核心概念,也是最重要的数据类型简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。最外层的user说明创建了这样一个对象,然后这个对象里面有name的key对应值,还有一个age对应的值。name和其值就组成了键值对,同样age也是一样。用代码的方式来表现就是这样:name和age称之为属性,还可以有更加复杂的类型,数组类型等等,还也可以有函数类型。对于对象体内的数据是没有类型限制的,你可以放置很多种。
2024-04-21 12:16:06
438
1
原创 CSS3 新特性 box-shadow 阴影效果、圆角border-radius
margin: 0 auto:上下不需要管,auto是让左右的空间平均分配,然后让盒子在中间,这就是居中。如果想要图形变为圆角效果,只需要添加一个属性就行了,border-radius 这个属性。(1)四个值:第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角。0代表水平方向没有阴影,第二个0代表垂直方向没有阴影,第三个是阴影的模糊度。(2)三个值:第一个值为左上角,第二个值为右上角和左下角,第三个值为右下角。(3)两个值:第一个值为左上角与右下角,第二个值为右上角与左下角。
2024-04-17 21:07:38
999
原创 Elastic安装后 postman对elasticsearch进行测试
/id 字段自增id//good_sn 商品SKU//good_name 商品名称//good_introduction 商品简介//good_descript 商品详情"good":{"id":{"fields":{},"fields":{},"fields":{},"fields":{},"fields":{
2024-04-16 10:25:44
1317
原创 ElasticSearch 集群添加用户安全认证功能(设置访问密码)
在6.8之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能;为了防止各种事故,一般都会设置es集群的访问密码;但是在我尝试设置访问密码的时候发现,设置访问密码的前提必须要设置集群证书,不然es启动报错。关于设置证书的作用,简单来说就是在集群内定各个es节点都必须持有相同的证书,如果某个es的恶意节点想加入你的集群,那么它也必须有要相同的证书,这就可以防止别人恶意创建节点加入你的集群了。本例子使用elasticsearchv7.2.0为例(1)生成 TLS 和身份验证。
2024-04-15 10:00:10
2040
原创 Docker 镜像 用普通用户启动服务
通过以普通用户身份启动Docker镜像中的服务,我们可以有效降低潜在的安全风险,并提高容器的可移植性和可重用性。在Dockerfile中创建一个普通用户,并使用USER命令切换到该用户,然后使用CMD命令定义容器启动时要运行的命令。最后,通过构建和运行容器来启动服务。这些步骤可以帮助我们以更安全和可靠的方式在Docker中运行服务。
2024-04-12 10:58:20
1387
1
原创 Dockerfile CMD、ENTRYPOINT 区别
命令如果指定了参数会把CMD里的参数覆盖: (这里说明一下,如:docker run -it ubuntu /bin/bash 命令的参数是指/bin/bash 而非 -it ,然后你可以在docker run里指定参数,这样CMD里的参数(这里是-c)就会被覆盖掉而ENTRYPOINT里的不被覆盖。现在你应该明白进入点的意思了吧。ENTRYPOINT 设置的命令一般是容器镜像所要执行的主要命令,CMD 则是选项和参数。它设置的值可以被 Dockerfile 中的后续指令覆盖,包括在运行容器时传递的参数。
2024-04-12 09:35:31
2727
原创 Nginx+Keepalived Kubernetes 负载均衡
试想下,虽然我们增加了Master2 Node和负载均衡器,但是我们是从单Master架构扩容的,也就是说目前所有的Worker Node组件连接都还是Master1 Node,如果不改为连接VIP走负载均衡器,那么Master还是单点故障。注2:如果你是在公有云上,一般都不支持keepalived,那么你可以直接用它们的负载均衡器产品,直接负载均衡多台Master kube-apiserver,架构与上面一样。注:keepalived根据脚本返回状态码(0为工作正常,非0不正常)判断是否故障转移。
2024-04-11 13:57:57
942
原创 Linux 查看占用内存 前10的命令
Linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:Linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:命令组合解析(针对CPU的,MEN也同样道理):拍摄aux|head-1;拍摄aux|grep-vPID|sort-让你-看+3|head该命令组合实际上是下面两句命令:Linux中ps命令是Process的缩写。ps命令用来列出系统中当前运行的那些进程。
2024-04-11 09:09:24
1430
1
原创 HTTP 域名和主机是一回事吗?有了主机和域名,如何建站?
域名不等于主机名,例如是一个权威域的域名,但是根本没有一个主机的名字叫做baidu.com,但是就是一个主机名,它就是负责baidu的服务器的主机名,www.也是一个主机名,它是百度web服务器的主机名。所以说域名不是主机名,域名是用来标识一个域的而不是标识主机的(有些主机可能使用域名当作主机名)。其实也就是可以申请一个域名,域名下面可以有多个主机,这些主机名称对应一个IP。
2024-04-10 11:30:15
1613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人