golang
golang学习
爷来辣
个人笔记,快乐运维。
展开
-
[golang]-gin支持跨域请求
gin的中间件可以添加到全局, 也可以添加到单个路由上。我之前做了routers分组,没有在main.go里添加,导致部分路由还是提示跨域。导语:记录一下golang gin支持跨域请求。中间件cors.go。添加到main.go。原创 2023-04-18 10:37:35 · 1169 阅读 · 1 评论 -
[golang]-用golang写一个清理异常pod的服务
导语:需要写一个定时清理异常pod的服务。把对应状态为error(ContainerStatusUnknown Evicted Error )的pod直接删除,处于删除状态,但是删除超过15分钟的pod强制删除。链接: https://pan.baidu.com/s/1IDJCn5nuLZnfwRVyFzfw3g?pwd=y2r5 提取码: y2r5。会输出一下对应pod error的原因。–来自百度网盘超级会员v6的分享。原创 2023-04-18 10:36:15 · 487 阅读 · 0 评论 -
[golang]-gin框架自动重启
导语:记录一下gin框架自动重启的办法。原创 2023-04-18 10:34:16 · 671 阅读 · 0 评论 -
[golang]-通过informer来watch k8s资源变更
与此同时,它创建了一个名为informer的Deployment Informer对象,并使用ResourceEventHandlerFuncs处理函数注册了一个回调函数,以接收 Deployment资源的事件通知,并记录这些事件。此示例使用了gin框架来实现基本的HTTP路由。最后,启动这个informer对象的goroutine,开始watch Deployment资源,并等待其缓存变得同步,在HTTP服务器之前完成。导语:记录一下使用informer来watch k8s资源变更。原创 2023-04-18 10:33:31 · 379 阅读 · 0 评论 -
[kubernetes]-k8s定时清理文件并通过钉钉通知
导语:希望通过daemonset执行某个命令来清理磁盘。原创 2023-04-17 18:02:35 · 415 阅读 · 0 评论 -
[golang]-自定义exporter获取pid的read_bytes
go原创 2023-01-31 11:12:50 · 248 阅读 · 0 评论 -
[golang]-watch etcd中key的变化
go原创 2023-01-31 11:11:41 · 392 阅读 · 0 评论 -
[golang]-使用私钥登录服务器执行命令
golang原创 2022-11-29 11:50:22 · 465 阅读 · 0 评论 -
[golang]-在golang进行ldap校验
golang ldap原创 2022-11-27 22:36:00 · 816 阅读 · 0 评论 -
[golang]-golang中使用casbin做权限验证
golang casbin原创 2022-11-27 22:32:23 · 750 阅读 · 0 评论 -
[golang]-获取url中参数的值并发邮件通知
golang原创 2022-10-15 15:32:15 · 315 阅读 · 0 评论 -
[问题已处理]-mac安装cobra失败
mac golang原创 2022-10-15 15:26:06 · 940 阅读 · 0 评论 -
[golang]-获取url中参数的值并发邮件通知
golang原创 2022-10-14 22:37:27 · 468 阅读 · 0 评论 -
[问题已处理]-vscode中import包之后没有代码提示
用vscode写go的时候 没有提示代码的方法。原创 2022-06-17 23:05:10 · 2495 阅读 · 0 评论 -
[golang]-prometheus获取物理cpu热区的温度
导语:golang,通过prometheus获取物理cpu热区的温度package collectorimport ( "bytes" "encoding/json" "fmt" "os/exec" "strconv" "strings" "github.com/go-kit/log" "github.com/prometheus/client_golang/prometheus" "github.com/shirou/gopsutil/cpu")const ( // 定义原创 2022-05-08 15:06:47 · 2259 阅读 · 0 评论 -
[golang]-通过node_exporter监控GPU以及cpu频率、温度
导语:通过node_exporter监控GPU以及cpu频率、温度,不想用一个node_exporter再加一个dcgm,分开监控。我这里监控的是热区的温度。如果需要监控各个cpu核心的温度需要修改一下代码。结合了https://gitee.com/kevinliu_CQ/node_exporter监控GPU的代码。加入了cpu的2项自定义监控https://gitee.com/jiaminxu/self_node_exporter安装一下gowget https://dl.google.com/g原创 2022-05-08 15:02:43 · 2858 阅读 · 0 评论 -
[golang]-golang获取服务器上使用gpu的进程id及对应的k8s容器名
导语:通过golang执行shell获取服务器上正在使用GPU的pid进程,及其对应的k8s pod名称以及对应的open pai平台的job和用户名。现在执行会页面返回有点慢。还需要优化,只实现了功能。package mainimport ( "bytes" "encoding/json" "fmt" "log" "net/http" "os/exec" "sort" "strconv" "strings")// Strval 获取变量的字符串值// 浮点型 3.0将会转原创 2022-04-27 21:37:11 · 1584 阅读 · 0 评论 -
[golang]-golang添加自定义node_exporter指标
git clone https://github.com/prometheus/node_exporter.git cd node_exporter go get github.com/shirou/gopsutil/cpugo run node_exporter.go package collectorimport ( "encoding/json" "fmt" "github.com/go-kit/log" "github.com/prometheus/client_g原创 2022-04-16 16:35:23 · 1044 阅读 · 0 评论 -
[linux]-获取服务器cpu的频率
导语:需要获取cpu的温度、频率等push到prometheus的gateway这里有个问题,虚拟机和物理机显示的cpu的信息会有出入。最好是物理机上的物理cpu。shell实现#!/bin/bashcnt_physical_cpu=$(cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l)cnt_processor=$(cat /proc/cpuinfo | grep 'processor' | wc -l)local_hos原创 2022-04-03 21:48:31 · 2689 阅读 · 0 评论 -
[golang]-clieng-go更新deployment的各个参数配置
导语:更新deployment的各个参数配置仅修改replicas个数为1package mainimport ( "context" "fmt" "log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd")func main() { configPath := "./config" config, er原创 2022-03-21 18:10:52 · 1847 阅读 · 0 评论 -
[golang]-client-go创建svc
导语: client-go创建svc的过程,结合之前创建的nginx的deployment目前没有暴露nodeport 后续使用到再添加。createService.gopackage mainimport ( "context" "fmt" "log" coreV1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/cli原创 2022-03-21 18:10:19 · 419 阅读 · 0 评论 -
[golang]-client-go删除指定deloyment和svc
导语:删除deloymentdeleteResource.gopackage mainimport ( "context" "fmt" "log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd")func main() { configPath := "./config" config, err := c原创 2022-03-21 18:09:45 · 1313 阅读 · 0 评论 -
[golang]-client-go创建一个nginx的deployment
导语:client-go创建一个nginx的deployment,笔记。init.gopackage mainimport ( "context" "fmt" "log" appv1 "k8s.io/api/apps/v1" coreV1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cl原创 2022-03-11 21:52:59 · 823 阅读 · 2 评论 -
[golang]-client-go获取namespace和node
导语:通过client-go获取k8s集群的namespace和nodego get k8s.io/client-go@v0.18.2go get k8s.io/api/auditregistration/v1alpha1@v0.18.2go get k8s.io/client-go/tools/clientcmd@v0.18.2# 查看资源在哪个下kubectl api-resourceskubectl get nodesmain.gopackage mainimport (原创 2022-03-11 21:52:38 · 2770 阅读 · 0 评论 -
[golang]-golang容器调用redis容器
导语:笔记。使用redis和go进行容器间交互的测试mani.gopackage mainimport ( "fmt" "log" "net/http" "os" "time" "github.com/gomodule/redigo/redis")func main() { addr := "0.0.0.0:80" // var redisAddr = "127.0.0.1=" // var redisPort = "6379" // var redisPassword原创 2022-03-04 17:57:01 · 1005 阅读 · 0 评论 -
[golang]-编译go项目并制作成docker镜像
导语:笔记,留着以后使用。如何创建一个简单的go服务,并制作成镜像mkdir webcd webgo mod init web创建main.gocat >main.go <<EOFpackage mainimport ( "fmt" "net/http" "os" "time")func main() { addr := "0.0.0.0:80" http.HandleFunc("/", func(w http.ResponseWriter, r *h原创 2022-03-04 17:55:33 · 1590 阅读 · 0 评论 -
[golang]-js匹配集合使页面默认收拢
导语:记录一下学习开发过程的坑通过js匹配集合使页面默认收拢base.js slideToggle:function(){ $('.aside>li:nth-child(1) ul,.aside>li:nth-child(2) ul,.aside>li:nth-child(3) ul,.aside>li:nth-child(4) ul,.aside>li:nth-child(5) ul,.aside>li:nth-child(6) ul,.aside>li原创 2022-01-29 10:49:01 · 792 阅读 · 0 评论 -
[golang]-实现搜索功能
导语:实现界面上搜索项目的功能html处修改加入5-22行{{template "../public/page_header.html" .}}<div class="container-fluid"> <div class="row"> <!-- 搜索 --> <div class="panel panel-default"> <div class="panel-heading原创 2021-02-08 11:11:25 · 1163 阅读 · 0 评论 -
[golang]-gitlab api将用户加入指定项目组
导语:golang调用gitlab api 给用户加入到某个项目中。目前只支持ssh地址。http地址在后续匹配项目时 还没做判断。先给自己做个笔记 记录一下。主要代码func (c *GitlabController) AddMember() { beego.Info("AddMember") c.TplName = "admin/gitlab/addMember.html"}func (c *GitlabController) DoAddMember() { beego.Info("D原创 2021-02-01 20:50:07 · 639 阅读 · 0 评论 -
[golang]-strings.Trim使用介绍
导语:今天用strings.Trim 的时候发现自己一直搞错了他的用法 记录一下原代码 s1 := "atest1.git " beego.Info("s1" + s1) // 去除.git 获取项目名 beego.Info("2gitlab项目名为:" + strings.Trim(s1, ".git")) gitproj := strings.Trim(s1, ".git") beego.Info("3gitlab项目名为:" + gitproj)本来是想做剔除的 发现和想要的结果不原创 2021-02-01 20:49:13 · 5012 阅读 · 0 评论 -
[golang]-html表单显示golang返回的json数据
导语:给自己做个笔记。想懒加载 用户看的时候加载 不看的时候不加载。先把前面ajax获取数据 展示到表单写好。返回的json数据如图所示html如下 需要返回表单{{template "../../public/page_header.html" .}}<div class="container-fluid"> <div class="row"> <!-- 列表展示 --> <div class="table原创 2021-02-01 20:47:44 · 673 阅读 · 0 评论 -
[golang]-Ajax+js请求json格式数据并渲染到html页面
导语:希望在html界面获取ajax获取的数据 以便后面实时更新发布界面的信息。部分路由如下 // test beego.NSRouter("/test", &api.TestController{}), beego.NSRouter("/job/test/jobDone", &api.TestController{}, "get:JobDone"), beego.NSRouter("/job/test/json", &api.TestControlle原创 2021-01-21 16:41:51 · 988 阅读 · 0 评论 -
[golang]-通过if判断是否需要隐藏内容
导语:想根据否个字段是否为空 来选择性显示某个选项。如果model后台的数值为空,就不显示。如果有值,则显示并让用户选择。效果如下相关html代码 {{$modelList := .deploypara.Model}} {{if eq $modelList ""}} <li原创 2021-01-11 21:00:28 · 344 阅读 · 0 评论 -
[golang]-k8s集群外使用
导语:使用client-go 调用测试环境将测试环境的kubelet.kubeconfig 或者/root/.kube/config 拷贝到电脑的$HOME/.kube/下go.modmodule demogo 1.13require ( github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/golan原创 2021-01-06 20:46:03 · 460 阅读 · 0 评论 -
[golang]-golang执行定时任务
导语:golang中需要定时执行某些任务。还没开始写,先做个笔记创建main.gopackage mainimport( "fmt" cron "github.com/robfig/cron/v3")func main() { crontab := cron.New() task := func() { fmt.Println("hello world") } // 添加定时任务, * * * * * 是 crontab,表示每分钟执行一次 crontab.AddFun原创 2020-12-16 10:28:00 · 793 阅读 · 0 评论 -
[golang]-golang使用gomail发送邮件
导语:golang需要邮件通知base.go主要代码package apiimport ( "DEVOPS/models" "encoding/json" "fmt" "io/ioutil" "net/http" "reflect" "regexp" "strings" "strconv" "github.com/astaxie/beego" "github.com/bndr/gojenkins" "github.com/yalp/jsonpath" "gopkg.in原创 2020-12-16 10:26:38 · 1056 阅读 · 0 评论 -
[golang]-golang调钉钉机器人
导语: 想通过钉钉机器人 推送项目发布申请的详情到群里。自己做个笔记创建机器人需要设置关键字或者ip 我这里设置了自己调api的外网ipbase.go 大致代码package apiimport ( "DEVOPS/models" "encoding/json" "fmt" "io/ioutil" "net/http" "reflect" "regexp" "strings" "strconv" "github.com/astaxie/beego" "githu原创 2020-12-16 10:26:26 · 1657 阅读 · 1 评论 -
[golang]-根据json中的某个key的值输出对应的id
导语:有一段json 如下 ,想根据传入的username的值匹配到对应的id。 对应功能是传入username,找到对应的id,删除对应的用户。思路是 循环遍历这个数组,然后判断 看看username是否等于输入的username,如果等于输出对应索引的id。直接上代码package apiimport ( "encoding/json" "fmt" "github.com/astaxie/beego")type TestController struct { BaseCon原创 2020-12-11 08:43:51 · 747 阅读 · 0 评论 -
[golang]-golang调用gitlab api增加删除用户
导语:使用golang将用户中文转换成英文并创建用户,并根据中文名删除用户。自己做个笔记备忘。判断之类目前还不是很完善。主要代码package adminimport ( "DEVOPS/models" "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" "strconv" // "reflect" "strings" "github.com/astaxie/beego" "github.com/yalp/jsonpat原创 2020-12-11 08:43:43 · 687 阅读 · 1 评论 -
[golang]-golang将中文转化为拼音
导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。官方demo 参考了github.com/mozillazg/go-pinyin搜到github.com/Chain-Zhang/pinyin的资料多一点,但貌似不维护了。package mainimport ( "fmt" "github.com/mozillazg/go-pinyin")func main() { hans := "中国人" //原创 2020-11-30 10:21:03 · 3402 阅读 · 0 评论