golang
%%'' OR 1=1
这个作者很懒,什么都没留下…
展开
-
基于client-go实现对kubernetes资源对象的监听
需求背景为了实现动态的对集群中的pod进行slb的绑定和解绑,我们通过创建configmap来动态传参,管控pod监听configmap的创建和删除操作,解析出configmap中的参数动态进行slb的绑定和解绑操作。监听的对象分别为kubernetes原生资源对象configmap,以及我们自定义对象弹性网卡eni,configmap 和自定义资源对象eni 的创建和删除 都对应着 后台的绑定和解绑操作。监听实现逻辑如下:代码实现configmap//watcher为自定义对象,watacher原创 2020-07-23 14:21:13 · 1870 阅读 · 0 评论 -
goland 构建约束与vendoring
构建约束条件和vendoring模式是可用于微调构建过程的工具。借助构建约束,您可以定义是否将文件包含在包中的规则之中。启用vendoring模式后,仅使用存储在项目中的依赖项包来构建应用程序。因此,您只能在包中包括一组特定的文件,并使用在本地修改或打补丁的依赖项。原创 2020-07-22 12:14:06 · 2585 阅读 · 0 评论 -
kubernetes获取pod监控指标
通过kubernetes client-go 客户端,调用metric server api获取pod及node相关的监控指标原创 2020-06-20 00:11:34 · 3556 阅读 · 0 评论 -
golang 利用mysql 实现分布式锁
需求背景我们的服务近期刚开始上线,之前在测试环境一直都是单实例运行。其中有一项功能是搜集kubernetes pod中的日志,上线之后发现,日志搜集有重复,问题定位较容易,因为重复数量恰好是我们线上服务的副本数,想到没有做分布式锁。线上运行的每个实例都在搜集每个pod的日志,导致日志重复。对于实现分布式锁,最常见的是通过zk、redis来实现,因为项目刚开始上线,目前暂不打算额外引入其他中间件,所以打算通过mysql来实现分布式锁。参考了以下两篇文章:mysql实现分布式锁简单实现依赖 MySQL原创 2020-05-19 21:30:26 · 1630 阅读 · 0 评论 -
golang中父子协程生命周期问题,以及通过context优雅关闭子协程
fmt.Println("main 函数 开始...") go func() { fmt.Println("父 协程 开始...") go func() { for { fmt.Println("子 协程 执行中...") timer := time.NewTimer(time.Second * 2) <-timer.C } }() time.Sleep(time.Second*5) fmt.Println("父 协程 退出...") }(.原创 2020-05-27 14:23:56 · 5913 阅读 · 2 评论