自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(349)
  • 资源 (6)
  • 收藏
  • 关注

原创 gin解决跨域问题

背景前端框架:vue.js,是网上别人已经封装好的模板后台web框架:gin后台限制请求方式只能是post,所有接口已经测试通过。前端调试始终提示404.日志打印前端的请求方式是options,而不是post。此时将后台的请求方式由post修改为options,返回成功。说明问题点就在请求method这里。但是前端明显有设置method为post,到了发送请求的时候自动变成了o...

2018-09-13 13:02:44 21473

原创 prometheus-operator使用process-exporter监控进程资源

Understanding Processes Running on Linux Host with Percona Monitoring and Management - Percona Database Performance Bloghttps://www.percona.com/blog/2021/04/22/understanding-processes-running-on-linux-host-with-percona-monitoring-and-management/部署proces.

2022-04-13 13:51:53 1197

原创 使用golang pprof进行性能分析

golang pprof,说实话自己还一次都没有实际操作过。最近这几天的需求恰好需要分析下一个看似很简单的服务,内存配置上限是900m,最终在大量并发的时候出现oom的情况。代码准备首先代码需要支持pprof才行。在main.go中引入_ "net/http/pprof"这个内存分析我加了个开关,是否需要借助pprof进行内存分析,如果enablePprof为true则进行pprof分析,另外pprof分析的端口暴露为7070(都是可以随意指定的,只要不与住程序端口冲突即可)

2022-01-11 12:17:58 1304

原创 node-exporter对节点相关的指标增加node ip

使用kube-prometheus部署的prometheus-operator,如果node在集群内,prometheus从node-exporter收集到的指标中是没有node ip的,只有node的hostname,使用label: instance来标记的。最近有个需求是(集群内)节点告警的时候需要知道具体的ip。修改node-exporter-serviceMonitor.yaml中以下内容:修改完成node-exporter-serviceMonitor.yaml后,重新appl.

2022-01-05 20:53:27 2012

原创 mongo:5.0:error while loading shared libraries: libc.musl-x86_64.so.1: cannot open shared object

mongo:5.0 error while loading shared libraries: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory

2021-12-29 18:49:41 2620

原创 pod健康检查promql:pod 处于非ready告警,增加pod所在的节点ip

pod 处于running状态并不代表可以正常接收请求,只有当pod对应的status中condition为true才代表能正常接收请求。以下表达式是在1分钟之内pod处于非ready状态的promqlmin_over_time(sum by (namespace, pod, prometheus_replica, instance, node) (kube_pod_status_ready{condition!='true', pod =~ '^<.svcName>.*', na.

2021-12-11 22:23:31 1483

原创 pod一直处于ContainerCreating,event显示cannot allocate memory

kd pod看到的event为:Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling

2021-09-13 15:31:35 1424

原创 prometheus-adapter自定义hpa

prometheus-adapter支持自定义hpa部署报错新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入部署报错F0724 01:09:56.467097 1 adapter.go:309] unable

2021-08-03 18:53:26 2365

原创 kubelet上报的container相关指标总是莫名缺少相应的label值,如image, pod, name等

k8s集群中container监控指标有label但是没有value现象原因排查解决现象无法获取到以下label的值:container, image, pod, name集群刚搭建完的时候一切都是正常的,后来运行一段时间后就缺这缺那的。原因排查由于这些指标是kubelet上报的,因此看了对应节点上kubelet的日志,发现kubelet日志一直在报错。centos系统cat /var/log/messages |grep "Failed"Jul 19 17:37:51 m1 kube

2021-07-21 17:01:26 1798 1

原创 grpc client No connection could be made because the target machine actively refused it

grpc client No connection could be made because the target machine actively refused it禁用防火墙查看yaml中暴露的端口与Dockerfile中暴露的端口是否一致禁用防火墙检查防火墙是否开启systemctl status firewalld如果防火墙打开,则关闭systemctl stop firewalld禁用防火墙systemctl disable firewalld查看yaml中暴露的端口与D

2021-06-26 14:32:25 831

原创 golang判定字符串是否存在特殊字符,并在特殊字符前添加转义符\

判断字符串是否包含特殊字符,如:~!@#$%^&*()_+}{":?><"⌘等import ( "unicode")// 如果存在特殊字符,直接在特殊字符前添加\/**判断是否为字母: unicode.IsLetter(v)判断是否为十进制数字: unicode.IsDigit(v)判断是否为数字: unicode.IsNumber(v)判断是否为空白符号: unicode.IsSpace(v)判断是否为Unicode标点字符 :unicode.IsPunct(v

2021-05-11 11:15:21 7673 3

原创 url中的转义字符

最近排查promql问题的时候发现,只要promql中带有特殊字符的,在查询的时候特殊字符都会被转义。比如在查询 sum(1 - rate(node_cpu_seconds_total{mode="idle"}[5m]) * on (namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{node=~"master2.sugonsit.local"}) by (node)但是实际执行的表达式却是sum%2...

2021-04-26 14:15:04 682

原创 ocp3.11部署prometheus-operator:v0.34.0,并使用prometheus-adapter做hpa

环境ocp3.11prometheus-operator安装ocp3.11的时候会默认安装与3.11匹配的prometheus-operator。我想使用prometheus-operator的remote write功能,但是这个默认安装的prometheus-operator不支持。于是就开始折腾把k8s中的prometheus-operator v0.34.0给安装到ocp3.11中。大部分yaml文件都是可以直接跑的,只有小部分yaml需要手动调整。需要调整的yaml说明

2021-04-26 12:06:34 446

原创 ocp集群删掉处于Terminating状态的namespace

目录环境现象解决根源环境ocp3.11现象昨天手贱打算把默认的prometheus-operator所在的openshift-monitoring这个namespace给删掉# oc get ns |grep monitoringopenshift-monitoring Terminating 8d但是始终处于Terminating一直卡住。解决官方给了解决办法:https://access.redhat.com/soluti

2021-04-08 15:11:52 421

原创 ocp集群部署daemonset没有调度到master节点

目录环境现象解决效果环境ocp3.11现象使用daemonset部署了node-exporter,该集群包含3个master节点和3个worker节点。但是daemonset的node-exporter始终没有调度到master节点上。1. 通过oc describe daemonset也没看出有什么异常2. daemonset的node-exporter使用的Node-Selector是没问题的,每个节点都有这个label的# oc get nodesNAM

2021-04-08 11:35:48 989

转载 ocp集群部署daemonset的node-exporter报错:Host network is not allowed to be used provider restricted

目录环境现象解决相关官方文档环境ocp3.11现象node-exporter使用daemonset部署,需要host network网络模式。在ocp上始终部署不起来,通过nde-exporter ds的状态oc describe ds node-exporterEvents: Type Reason Age From Message ---- ------

2021-04-08 10:55:39 1053

转载 etcd报错:etcdserver: mvcc: database space exceeded

使用docker部署的etcd。没有把etcd数据挂载出来。确认数据是否真的超出配额进入etcd容器查看etcd数据是否超出配额etcdctl --write-out=table endpoint status+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------------

2021-03-18 16:48:10 1674

原创 coredns使用etcd存储解析域名

目录etcd部署写记录coredns配置文件部署解析etcd写入的记录dig方式nslookup方式为了方便测试使用docker部署etcd和coredns.etcd部署 docker run -d --network host -e ETCDCTL_API=3 --restart always \ -v /var/lib/it/data/etcd:/etcd-data \ --name etcd quay.io/coreos/et

2021-03-12 18:42:34 1751

原创 ansible: KeyError: ‘getpwuid(): uid not found: 1000130000

在k8s中使用Job跑了一个ansible。但是在具体执行ansible逻辑时报错了,提示: KeyError: 'getpwuid(): uid not found: 1000130000由于以上错误的存在,导致不能继续处理后续的逻辑了。进入ansible 对应的container里面执行whoami,报错正常情况下,执行whoami是可以找到该uid对应的用户名的。如[root@1234567890-create-cluster-4lh8g openshift-ansibl

2021-02-20 19:32:45 1493

原创 Invalid settings supplied for DEFAULT_LOCAL_TMP: Unable to create local directories(/.ansible)

最近在k8s中使用ansible相关的镜像跑了一个Job。对应的Job为这个Job里面挂载了之前已经生成好的ConfigMap。Job对应的镜像是别的同事给的。jobData := &unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "batch/v1", "kind": "Job", "metadata": map[string]interface{}{

2021-02-19 09:53:08 1447

转载 golang template(数组循环、在循环内使用外部变量、索引从1开始)

template之前也使用过,但都是一些最简单的字符串替换,但是从来没有使用过数组的循环遍历.官方文档在这:https://golang.org/pkg/text/template/。 看的云里雾里的之前做prometheus监控告警的时候为了适配各种类型的告警,把告警表达式模板抽出来了。avg by(instance,prometheus_replica) (rate(node_cpu_seconds_total{mode = 'system', instance =~ '^{{.h..

2021-02-02 14:59:55 11001

原创 getting the final child‘s pid from pipe caused \“EOF\““: unknown

k8s pod一直处于ContainerCreating,kd查看事件中报错 Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "image-nginx": Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container

2021-01-11 15:52:45 3241

原创 在go mod中使用k8s.io/code-generator生成代码

准备工作- 创建项目crd- 在项目下创建pkg/apis/foo/v1目录- 在pkg/apis/foo下创建register.go- 在pkg/apis/foo/v1下创建doc.go, types.go, register.go- copy https://github.com/kubernetes/code-generator.git到$GOPATH/src/k8s.io下(我用的是release-1.16分支。如果需要特定的分支则先切换分支再继续) 1. cd 到cmd/...

2020-12-23 15:37:06 3600

原创 cadvisor报错failed to collect filesystem stats- rootDiskErr: du command failed on /rootfs/var/lib/doc

cadvisor版本:v0.32.0镜像:google/cadvisor:latest镜像id: eb1210707573[root@main ~]# docker images|grep cadvisordocker.io/google/cadvisor

2020-12-09 16:47:53 1586

原创 prometheus-operator中grafana开启匿名登录

为了把grafana接入大公司自己的平台,每次都需要登录很麻烦,看了grafana官网文档是可以开启匿名登录的。prometheus-operator 中grafana的配置文件是默认的,想要开启匿名登录就得修改grafana.ini文件。通过configmap的方式挂载到grafana中,就不再担心grafana pod重启后配置被还原的问题了。## grafana开启匿名登录 1. 准备grafana.ini配置文件 ```` 准备grafana.ini,修改[.

2020-12-03 10:45:05 850 2

原创 golang调用prometheus-operator api创建PromtheusRule

prometheus-operator使用PrometheusRule来代替了规则文件。每个告警规则对应一个PrometheusRule对象。所有的PrometheusRule对象会被Prometheus-Operator转换为规则文件挂载在promtheus pod内部的/etc/prometheus/rules/prometheus-k8s-rulefiles-0 目录下。package apiimport ( "errors" "fmt" operatorV1 "github.com.

2020-11-28 14:06:03 1290 9

原创 通过cadvisor来进行容器的健康检查

cadvisor指标见官网:https://github.com/google/cadvisor/blob/master/docs/storage/prometheus.mdcadvisor目前并没有提供可以作为健康检查使用的指标。根据这个issue:https://github.com/google/cadvisor/issues/2166根据docker_exporter可以看到会提供docker_container_running_state这个指标来标记容器是否是running....

2020-11-21 15:35:20 481

原创 node-exporter问题集

使用docker部署node-exporter报错failed to retrieve adjtimex stats: operation not permitted部署命令docker run -d --name node-exporter -v /proc:/host/proc -v /sys:/host/sys -v /:/rootfs quay.io/prometheus/node-exporter:v0.18.1 --path.procfs /host/proc --path.s...

2020-11-19 17:10:35 2229

原创 prometheus-operator监控集群外的docker服务

这个主题网上可以搜到好多内容,如果直接照抄过来,还是不好用,应该是我没掌握原理。10.10.14.2这个服务器并不在集群内,这个服务器上面跑的服务都是docker起的。prometheus-operator部署在集群内,想要通过prometheus-operator监控10.10.14.2这个服务器上的docker服务,以及该服务器本身的指标。docker服务使用cadvisor来暴露指标,服务器本身的指标使用node-exporter来暴露。首先在10.10.14.2这个服务器部署cad...

2020-11-14 23:59:22 952

原创 k8s v1.16设置Job ttlSecondsAfterFinished不生效

目录Completed的job默认不会清理配置自动清理jobttl机制自动清理完成的jobttl controller开启TTLAfterFinishedkube-apiserver开启TTLAfterFinished​kube-controller-manager开启TTLAfterFinished重启kubeletCompleted的job默认不会清理Job在处于Completed后,默认是不会被清理的。https://v1-16.docs.kubernet.

2020-10-29 17:06:04 3931

原创 golang上传文件到ftp服务器

搭建ftp服务器installcentos7yum -y install vsftpd查看是否安装成功service vsftpd status禁用匿名登录vim /etc/vsftpd/vsftpd.conf修改anonymous_enable=YES为 anonymous_enable=NO重启ftpsystemctl restart vsftpd通过查看ftpusers 和user_list是登录的黑名单和白名单但是直接使用root竟然无法...

2020-10-20 21:09:08 2925 1

原创 docker搭建nexus服务器

拉镜像docker pull sonatype/nexus3:3.28.0运行nexus docker run -it --name nexus3 sonatype/nexus3:3.28.0 shnexus的配置文件放在cat /opt/sonatype/nexus/etc/nexus-default.properties# Jetty sectionapplication-port=8081application-host=0.0.0.0nexus-args...

2020-10-19 15:56:40 848

转载 golang序列化json去除转义字符

在解析一个返回值的时候,得到的json格式如下。{"volume.cloudtogo.cn/spec":"ID: \"b9aad132b4df4f07ac78896ab193b6cc\"\nMountpoint: \"/workspace\"\nCapacity: 1073741824\nNFS: \u003c\n\u003e\n"}这个json是带有转义字符的。去掉这些转义字符。根据go doc的描述,如果要禁用转义字符需要调用SetEscapeHTML(false)。// S...

2020-10-15 15:44:41 18025

转载 centos 安装maven

安装jdk8yum install java-1.8.0-openjdk验证java[root@n1 ~]# java -versionopenjdk version "1.8.0_262"OpenJDK Runtime Environment (build 1.8.0_262-b10)OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)安装mavenwget https://archive.apache.or...

2020-10-12 11:40:55 553

原创 golang 字符串相似度算法

题目:一个字符串可以通过增加一个字符,删除一个字符,替换一个字符得到另外一个字符串,假设,我们把从字符串A转换成字符串B,前面3种操作所执行的最少次数称为AB相似度如abc adc度为 1 ababababa babababab 度为 2 abcd acdb 度为2字符串相似度算法可以使用 Levenshtein Distance算法(中文翻译:编辑距离算法) 这算法是由俄国科学家Levenshtein提出的。其步骤Step Description 1...

2020-09-11 11:16:08 2972

原创 Dind vs BuildKit vs Kaniko

目录CPUMem构建时间安全性从消耗的CPU和Mem,构建时间,安全性方面对Dind, BuildKit, Kaniko做了下对比。机器:4C 11GCPUMem构建时间Dind无缓存,BuildKit和Kaniko都可以使用缓存安全性 DinD需要具备特权的root启动,存在安全风险; BuildKit和Kaniko可以使用非特权的root运行,安全性高...

2020-09-10 17:22:19 819

转载 golang net/smtp邮件发送报错:504 5.7.4 Unrecognized authentication type

报错查看当前smtp服务器的认证方式telnet 邮件服务器地址 端口echo localhost参照:http://being23.github.io/2015/09/17/%E4%BD%BF%E7%94%A8golang%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6/是由于认证方式的问题,需要支持新的认证方式...

2020-09-08 17:27:45 6160 1

原创 kaniko vs buildkit

kanikokaniko会提取Dockerfile里面的base image作为文件系统,但是如果Dockerfile的base image选的不合理,那整个过程是相当漫长的。以这个Dockerfile为例: FROM golang:1.14-alpine as builderCOPY . /go/src/github.com/xkf/hello-worldRUN cd /go/src/github.com/xkf/hello-world && CGO_ENABLE...

2020-09-01 17:21:56 868

原创 Kaniko push 镜像到私有镜像仓库

目录创建ns私有镜像仓库需要账号密码创建docker-registry secret查看刚刚生成的secret对secret进行base64解码使用Local Directory作为build contexthostpath方式pvc方式创建ns把所有与kaniko相关的全部放在kaniko这个ns下。kubectl create ns kaniko私有镜像仓库需要账号密码创建docker-registry secret// docker-ema.

2020-08-26 20:40:50 2239

转载 prometheus-operator 对instance进行relabel

https://stackoverflow.com/questions/49896956/relabel-instance-to-hostname-in-prometheus原始收集到的instance可能是ip:port格式,但是在设置告警的时候带了端口很不方便。对instance进行relabel.spec: endpoints: - interval: 30s port: metrics relabelings: - acti...

2020-08-24 19:30:20 1484

gin跨域支持options请求

gin跨域支持options请求。亲测可用啊,这个是一个大佬发给我的

2018-10-10

javax.jms.jar

最近在学中间件,开发中有需要使用jms的,发现自己以前都没有这个jar包,现在在官网下载好了,分享给可能也需要的你,希望你觉得有用

2017-09-22

sqlyog.exe 与sqlyog.reg

该文件包含了sqlyog.exe与sqlyog.reg,即工具与注册机。 SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

2017-09-17

StarUML5.0

StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).

2017-09-17

去除电脑桌面图标箭头

新安装的软件如果有在桌面新建了快捷键,或者你将某个软件生成了桌面快捷键,一般都会自带一个箭头,其实看起来还是挺难看的,可以用这个小工具轻松去除掉箭头

2017-09-17

反编译软件jd-gui

反编译软件jd-gui,方便实用,用起来很简单. A useful application that was designed to provide a fast Java decompiler and reduce the time and energy you spend on your projects

2017-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除