2022年3月

一个基于k8s client-go实现的容器镜像版本检查工具

背景

业务中有使用k8s部署和管理微服务,微服务的数量多了之后偶尔会出现因人工操作疏漏而导致版本错乱的现象。比如某个微服务临时要切到灰度版本,结果灰度执行完成后忘记切换回正式版本;再比如一些cronjob所使用的镜像版本可能落后于deployment中运行的版本(cronjob配置忘记更新镜像版本)。这些状况都可能给业务带来损害,为此我编写了一个检查规则可配置的工具来兜底提醒,工具通过k8s的client-go客户端获取微服务的信息跟配置中的信息做比对,对于异常信息做出预警。

插件模式

这里使用到上一篇中的插件组件,插件组件的介绍可以查阅这篇内容《一个插件引擎,让自己的Go程序支持插件式扩展

go-tagdog

- 阅读剩余部分 -

一个插件引擎,让自己的Go程序支持插件式扩展

github.com/kcatcat/go-plugin

一个插件库(插件引擎),可以使你的Go程序轻松支持插件式扩展。代码地址:https://github.com/kcatcat/go-plugin

  • 这是一个链表式插件库,它把各个插件按顺序连接起来
  • 每个插件均可在next handle的前后分别实现前序逻辑后续逻辑
  • 各插件的执行顺序如下图所示

go-plugin

Install

go get -u github.com/kcatcat/go-plugin/plugin

- 阅读剩余部分 -

LeetCode刷题之addTwoNumbers两链表之和Go语言版

题目描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

前提约束

  • 每个链表中的节点数在范围[1, 100]内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

- 阅读剩余部分 -

Centos8 Curl报错SSL certificate problem: EE certificate key too weak

今天用Centos8做底包调试新的包源(私有包源),dnf安装包一直失败(以前是用yum,centos8已经换成了dnf,yum作为dnf的软链接还可以继续使用),报错如下:

Curl error (60): Peer certificate cannot be authenticated with given CA certificates for
https://xxxx/repomd.xml [SSL certificate problem: EE certificate key too weak]

2022-03-01T12:34:58.png

问题原因

一开始以为是证书问题,更新证书无果,最后还是Google大法找到一个解决方案。原因是Centos8升级了安全策略级别,默认策略中关闭了对TSL1.0,TSL1.1协议的认可,而我们的包源站点还用的是旧版本。

- 阅读剩余部分 -

LeetCode刷题之twoSum两数之和Go语言版

题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

测试示例

示例 1

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

- 阅读剩余部分 -