访问 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
我从来没有尝试过,所以我不能给出进一步的提示。
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
我从来没有尝试过,所以我不能给出进一步的提示。