漠然

Nothing is impossible to a willing heart!

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...

Traefik 另类的服务暴露方式

最近准备重新折腾一下 Kubernetes 的服务暴露方式,以前的方式是彻底剥离 Kubenretes 本身的服务发现,然后改动应用实现 应用+Consul+Fabio 的服务暴露方式;总感觉这种方式不算优雅,所以折腾了一下 Traefik,试了下效果还不错,以下记录了使用 Traefik 的新的服务暴露方式(本文仅针对 HTTP 协议); 一、Traefik 服务暴露方案 1....

为你的 GitLab 增加提交信息检测

最近准备对项目生成 Change Log,然而发现提交格式不统一根本没法处理;so 后来大家约定式遵循 GitFlow,并使用 Angular 社区规范的提交格式,同时扩展了一些前缀如 hotfix 等;但是时间长了发现还是有些提交为了 “方便” 不遵循 Angular 社区规范的提交格式,这时候我唯一能做的就是想办法在服务端增加一个提交检测;以下记录了 GitLab 增加自定义 Co...

Kubernetes 1.10.1 集群搭建

年后比较忙,所以 1.9 也没去折腾(其实就是懒),最近刚有点时间凑巧 1.10 发布;所以就折腾一下 1.10,感觉搭建配置没有太大变化,折腾了 2 天基本算是搞定了,这里记录一下搭建过程;本文用到的被 block 镜像已经上传至 百度云 密码: dy5p 一、环境准备 目前搭建仍然采用 5 台虚拟机测试,基本环境如下 IP Type...

Drone CI 搭建

最近感觉 GitLab CI 稍有繁琐,所以尝试了一下 Drone CI,这里记录一下搭建过程;虽然 Drone CI 看似简单,但是坑还是有不少的 一、环境准备 基本环境如下: Docker: 17.09.0-ce GitLab: 10.4.3-ce.0 Drone: 0.8.5 其中 GitLab 采用 TLS 链接,为了方便使用 git 协议 clone...