漠然

Nothing is impossible to a willing heart!

Kubernetes 1.12 新的插件机制

在很久以前的版本研究过 kubernetes 的插件机制,当时弄了一个快速切换 namespace 的小插件;最近把自己本机的 kubectl 升级到了 1.12,突然发现插件不能用了;撸了一下文档发现插件机制彻底改了… 一、插件编写语言 kubernetes 1.12 新的插件机制在编写语言上同以前一样,可以以任意语言编写,只要能弄一个可执行的文件出来就行,插件可以是一个 ba...

Go 编写的一些常用小工具

迫于 Github 上 Star 的项目有点多,今天整理一下一些有意思的 Go 编写的小工具;大多数为终端下的实用工具,装逼的比如天气预报啥的就不写了 syncthing 强大的文件同步工具,构建私人同步盘 👉 Github fzf 一个强大的终端文件浏览器 👉 Github hey http 负载测试工具,简单好用 👉 Github Usage: hey [o...

远程 Debug kubeadm

最近在看 kubeadm 的源码,不过有些东西光看代码还是没法太清楚,还是需要实际运行才能看到具体代码怎么跑的,还得打断点 debug;无奈的是本机是 mac,debug 得在 Linux 下,so 研究了一下 remote debug 一、环境准备 GoLand 2018.2.4 Golang 1.11.2 delve v1.1.0 Kubernetest m...

Mac: Extract JDK to folder, without running installer

重装了 mac 系统,由于一些公司项目必须使用 Oracle JDK(验证码等组件用了一些 Oracle 独有的 API) 所以又得重新安装;但是 Oracle 只提供了 pkg 的安装方式,研究半天找到了一个解包 pkg 的安装方式,这里记录一下 不使用 pkg 的原因是每次更新版本都要各种安装,最烦人的是 IDEA 选择 JDK 时候弹出的文件浏览器没法进入到这种方式安装的 J...

Go ssh 交互式执行命令

最近在写一个跳板机登录的小工具,其中涉及到了用 Go 来进行交互式执行命令,简单地说就是弄个终端出来;一开始随便 Google 了一下,copy 下来基本上就是能跑了…但是后来发现了一些各种各样的小问题,强迫症的我实在受不了,最后翻了一下 Teleport 的源码,从中学到了不少有用的知识,这里记录一下 一、原始版本 不想看太多可以直接跳转到 第三部分 拿代码 1.1、...

Go 代码的扩展套路

折腾 Go 已经有一段时间了,最近在用 Go 写点 web 的东西;在搭建脚手架的过程中总是有点不适应,尤其对可扩展性上总是感觉没有 Java 那么顺手;索性看了下 coredns 的源码,最后追踪到 caddy 源码;突然发现他们对代码内的 plugin 机制有一些骚套路,这里索性记录一下 一、问题由来 纵观现在所有的 Go web 框架,在文档上可以看到使用方式很简明;非常符...

Google container registry 同步

一、起因 玩 Kubenretes 的基本都很清楚,Kubernetes 很多组件的镜像全部托管在 gcr.io 这个域名下(现在换成了 k8s.gcr.io);由于众所周知的原因,这个网站在国内是不可达的;当时由于 Docker Hub 提供了 Auto Build 功能,机智的想到一个解决办法;就是利用 Docker Hub 的 Auto Build,创建只有一行的 Dockerfil...

使用 Bootstrap Token 完成 TLS Bootstrapping

最近在测试 Kubernetes 1.11.2 新版本的相关东西,发现新版本的 Bootstrap Token 功能已经进入 Beta 阶段,索性便尝试了一下;虽说目前是为 kubeadm 设计的,不过手动挡用起来也不错,这里记录一下使用方式 一、环境准备 首先需要有一个运行状态正常的 Master 节点,目前我测试的是版本是 1.11.2,低版本我没测试;其次本文默认 Node...

Kubernetes 证书配置

一直以来自己的 Kubernetes 集群大部分证书配置全部都在使用一个 CA,而事实上很多教程也没有具体的解释过这些证书代表的作用以及含义;今天索性仔细的翻了翻,顺便看到了一篇老外的文章,感觉写的不错,这里顺带着自己的理解总结一下。 一、Kubernetes 证书分类 这里的证书分类只是我自己定义的一种 “并不 ok” 的概念;从整体的作用上 Kubernetes 证书大致上应...

编写 kubectl 插件

最近忙的晕头转向,博客停更了 1 个月,感觉对不起党、对不起人民、对不起 CCAV…不过在忙的时候操作 Kubernetes 集群要频繁的使用 kubectl 命令,而在多个 NameSpace 下来回切换每次都得加个 -n 简直让我想打人;索性翻了下 kubectl 的插件机制,顺便写了一个快速切换 NameSpace 的小插件,以下记录一下插件编写过程 一、插件介绍 kube...