是否可以使用 golang 代码而不是使用 kubectl 的命令行Linux部署 kubernetes Pod ?
答案 0 :(得分:2)
是的。绝对可以。 Kubernetes用golang编写。它有正式的客户去。您可以使用此go客户端创建,删除,修补,列出,控制几乎所有Kubernetes资源。
这是官方的客户端存储库:kubernetes/client-go
我已经创建了一个示例存储库here,以展示如何使用client-go
创建pod。
您必须执行以下操作才能使用此客户端创建广告连播。我们将创建一个简单的busybox pod。
答案 1 :(得分:1)
您可以编写函数并将单元格图像yaml文件作为参数。
func cellDeploy(pathToFileName string) error {
cmd := exec.Command("kubectl", "apply", "-f", pathToFileName)
stdoutReader, _ := cmd.StdoutPipe()
stdoutScanner := bufio.NewScanner(stdoutReader)
go func() {
for stdoutScanner.Scan() {
fmt.Println(stdoutScanner.Text())
}
}()
stderrReader, _ := cmd.StderrPipe()
stderrScanner := bufio.NewScanner(stderrReader)
go func() {
for stderrScanner.Scan() {
fmt.Println(stderrScanner.Text())
}
}()
err := cmd.Start()
if err != nil {
fmt.Printf("Error : %v \n", err)
os.Exit(1)
}
err = cmd.Wait()
if err != nil {
fmt.Printf("Error: %v \n", err)
os.Exit(1)
}
return nil
}