GO 十二月 11, 2022

用 Go 构建全平台命令行工具

文章字数 11k 阅读约需 10 mins.

Write once, run anywhere 是 Sun 1995 年为宣传 Java 语言的跨平台特性而提出的口号。

然而了解 Java 的人都知道,这个 run anywhere 是以目标环境...

查看全文

GO 十二月 11, 2022

用 Go 构建全平台命令行工具

文章字数 11k 阅读约需 10 mins.

Write once, run anywhere 是 Sun 1995 年为宣传 Java 语言的跨平台特性而提出的口号。

然而了解 Java 的人都知道,这个 run anywhere 是以目标环境存在 JVM 为前提的。当我们希望构建一个可以 run anywhere 的命令行工具时,Java 显然不是最好的选择。

作为一个更加简洁、现代的编程语言,Golang 可以通过指定 GOOSGOARCH 两个环境变量,将 Go 代码编译为目标环境的可执行文件(无需 Go 运行环境等其他任何依...

查看全文

BOOK 八月 14, 2022

《Go in Action》书摘

文章字数 42k 阅读约需 38 mins.

1.1.2 Concurrency

  • Channels help to enforce the pattern that only one goroutine should modify the data at any time.
  • … channels are used to send data between several running goroutines.
  • If your main function doesn’t exist in package main, the build tools...
查看全文

DEVOPS 一月 02, 2022

使用 easyctl 在多主机上并行执行脚本

文章字数 5.3k 阅读约需 5 mins.

当有大批量主机,需要进行类似的操作时,推荐一个不需要配置 SSH 免密登录 的简单工具 —— easyctl

上面这个场景,主要使用到了 easyctl 中的 执行指令集 - 跨主机并行执行shell,easyctl 提供的其他功能及使用方式,可见 源码 或文档中的其他部分。

因为 跨主机并行执行 shell 这个功能实际就是通过 ssh 连接到各主机,并行执行指定命令,并将最终直接结果汇总,所以理论上只要支持 ssh 的环境,都可以使用 easyctl 的这个功能,比如 Mac,甚至 Windows...

查看全文

K8S 九月 25, 2021

【转】如何写一个operator

文章字数 14k 阅读约需 13 mins.

原文地址:https://www.jianshu.com/p/79476712575e

文章源地址请移步writing-a-controller-for-pod-labels

样例代码

operator旨在简化基于k8s部署有状态服务(例如:ceph集群、skywalking集群)

可以利用Operator SDK 构建一个operator
operator使扩展k8s及实现自定义调度变得更加简单。

尽管Operator SDK 适合构建功能齐全的operator
但也可以使用它来编写单个控制器...

查看全文

GO 八月 15, 2021

Go text tempate

文章字数 6.7k 阅读约需 6 mins.

text/template 是 Go 的标准库,提供数据驱动的文本模板生成功能。

先来快速感受一下,将下面代码保存为 template.go

package main

import (
    "os"
    "text/template"
)

func main() {
    text := `START
[Actions]
    {{/* abdef */}}
    {{- "action" }}
    {{- range . }}
    {{ . }}
    {{- end }}
[Text and...
查看全文
0%