gpt4 book ai didi

kubernetes - 观看kubernetes Pane 状态以在客户端运行中完成

转载 作者:行者123 更新时间:2023-12-04 19:27:12 26 4
gpt4 key购买 nike

我在k8 client go中创建了一个容器,并制作了一个 watch 以通知容器完成的时间,以便我可以读取容器的日志。监视界面似乎未在 channel 上提供任何事件。这是代码,如何通知我 pods 状态现已完成并准备读取日志

func readLogs(clientset *kubernetes.Clientset) {
// namespace := "default"
// label := "cithu"
var (
pod *v1.Pod
// watchface watch.Interface
err error
)
// returns a pod after creation

pod, err = createPod(clientset)
fmt.Println(pod.Name, pod.Status, err)

if watchface, err = clientset.CoreV1().Pods(namespace).Watch(metav1.ListOptions{
LabelSelector: pod.Name,
}); err != nil {
log.Fatalf(err.Error())
}

// How do I get notified when the pod.Status == completed
}

最佳答案

可以使用以下代码段列出事件。然后,您可以根据需要处理pod事件。

label := ""
for k := range pod.GetLabels() {
label = k
break
}
watch, err := clientset.CoreV1().Pods(namespace).Watch(metav1.ListOptions{
LabelSelector: label,
})
if err != nil {
log.Fatal(err.Error())
}
go func() {
for event := range watch.ResultChan() {
fmt.Printf("Type: %v\n", event.Type)
p, ok := event.Object.(*v1.Pod)
if !ok {
log.Fatal("unexpected type")
}
fmt.Println(p.Status.ContainerStatuses)
fmt.Println(p.Status.Phase)
}
}()
time.Sleep(5 * time.Second)

关于kubernetes - 观看kubernetes Pane 状态以在客户端运行中完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52567334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com