我想随机关闭 kubernetes 集群中的 pod。我已经编写了代码,可以登录服务器并运行代码。
现在我需要读取集群中所有可用的 pod,随机选择一些并终止它们。 (我是新来的)
你能帮我做这个吗?
这就是我在集群/服务器上运行命令的方式
cli.ExecuteCmd("kubectl get pods")
// Use one connection per command.
// Catch in the client when required.
func (cli *SSHClient)ExecuteCmd(command string){
conn, err := ssh.Dial("tcp", cli.Hostname+":22", cli.Config)
if err!=nil {
logrus.Infof("%s@%s", cli.Config.User, cli.Hostname)
logrus.Info("Hint: Add you key to the ssh agent: 'ssh-add ~/.ssh/id_rsa'")
logrus.Fatal(err)
}
session, _ := conn.NewSession()
defer session.Close()
var stdoutBuf bytes.Buffer
session.Stdout = &stdoutBuf
err = session.Run(command)
if err != nil {
logrus.Fatalf("Run failed:%v", err)
}
logrus.Infof(">%s", stdoutBuf.Bytes())
}
最佳答案
使用 k8s.io/client-go
( Github Link ) 客户端包列出 kubernetes pod,然后随机删除它们。
使用client.CoreV1().Pods()列出和删除 pod 的方法。
关于go:随机终止 kubernetes 集群中的 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45051875/