访问 kubectl 解释

Access kubectl explain

kubectl explain 解释了 kubectl 中对象的属性。例如。 k explain pod.spec.volumes.secret 让您深入了解如何将机密安装到您的 pod 中。

我想在 Go 中为此编写一个包装器。 如何访问解释? Afaik go client lib 无法访问它,因为解释是 kubectl 的一个特性,而不是集群本身。我想避免编写 bash 脚本,从 go 执行它并解析输出。

您可以使用 os/exec 包。

使用该包,您可以执行 kubectl 命令并解析输出。

func main() {
    cmd := exec.Command("kubectl", "arg1", "arg2")
   
    var out bytes.Buffer
    cmd.Stdout = &out

    err := cmd.Run()

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf(string(out.Bytes()))
}

请查找该包的文档here

或者,您可以尝试导入 kubectl 包的重要部分并从您的代码中调用这些函数。这可行,因为 kubectl 是用 Go 编写的。

看看那个回购协议:https://github.com/kubernetes/kubectl

我从来没有尝试过,所以我不能给出进一步的提示。