概述
获取所有命名空间下的pod的相关信息
package main
import (
"context"
"flag"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/homedir"
"k8s.io/klog"
"path/filepath"
)
func main() {
var kubeconfig *string
ctx := context.Background()
if home := homedir.HomeDir(); home != "" {
kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "absolute path to kubeconfig file")
} else {
kubeconfig = flag.String("kubeconfig", "","absolute path to kubeconfig file")
}
flag.Parsed()
config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
if err != nil {
klog.Fatal(err)
}
clientSet, err := kubernetes.NewForConfig(config)
if err != nil {
klog.Fatal(err)
}
namespaceList, err := clientSet.CoreV1().Namespaces().List(ctx, metav1.ListOptions{})
if err != nil {
klog.Fatal(err)
return
}
namespaces := namespaceList.Items
for _, namespace := range namespaces {
fmt.Println("namespace: ", namespace.Name + " status:"+ string(namespace.Status.Phase))
podsList, err := clientSet.CoreV1().Pods(namespace.Name).List(ctx, metav1.ListOptions{})
if err != nil {
klog.Fatal(err)
return
}
pods := podsList.Items
for _, pod := range pods {
fmt.Println("pods: ", pod.Name)
fmt.Println("status: ", pod.Status.Phase)
}
}
}
最后
以上就是光亮唇膏为你收集整理的client-go代码实例的全部内容,希望文章能够帮你解决client-go代码实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复