我是靠谱客的博主 光亮唇膏,最近开发中收集的这篇文章主要介绍client-go代码实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

获取所有命名空间下的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代码实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部