1. 查看 node列表

package mainimport ("fmt"metav1 "k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/client-go/kubernetes""k8s.io/client-go/tools/clientcmd""log""os""path/filepath"
)func main() {// kubernetesの設定ファイルのパスを組み立てるkubeconfig := filepath.Join(os.Getenv("HOME"), ".kube", "config")// BuildConfigFromFlags is a helper function that builds configs from a master url or // a kubeconfig filepath.config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)if err != nil {log.Fatal(err)}// NewForConfig creates a new Clientset for the given config.// https://godoc.org/k8s.io/client-go/kubernetes#NewForConfigclientset, err := kubernetes.NewForConfig(config)if err != nil {log.Fatal(err)}// https://godoc.org/k8s.io/client-go/kubernetes/typed/core/v1nodes, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get nodes:", err)}for i, node := range nodes.Items {fmt.Printf("[%d] %s\n", i, node.GetName())}
}
$ go run nodelist.go
[0] kube-01
[1] kube-02
[2] kube-03
[3] kube-04

2. 查看pod列表

// https://godoc.org/k8s.io/client-go
package mainimport ("fmt"metav1 "k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/client-go/kubernetes""k8s.io/client-go/tools/clientcmd""log""os""path/filepath"
)func main() {kubeconfig := filepath.Join(os.Getenv("HOME"), ".kube", "config")config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)if err != nil {log.Fatal(err)}// NewForConfig creates a new Clientset for the given config.// https://godoc.org/k8s.io/client-go/kubernetes#NewForConfigclientset, err := kubernetes.NewForConfig(config)if err != nil {log.Fatal(err)}// We need to create a serializer client to let us access API objects.// Type Clientset, from package kubernetes, provides access to generated serializer clients// to access versioned API objects// https://godoc.org/k8s.io/client-go/kubernetes#Clientset.CoreV1pods, err := clientset.CoreV1().Pods("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get pods:", err)}// print pods// pods.Items: []v1.Podfor i, pod := range pods.Items {fmt.Printf("[%d] %s\n", i, pod.GetName())}
}

3. service列表

   services, err := clientset.CoreV1().Services("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get services:", err)}for i, svc := range services.Items {fmt.Printf("[%d] %s\n", i, svc.GetName())}

4. 获取sa列表

    serviceAccounts, err := clientset.CoreV1().ServiceAccounts("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get service accounts:", err)}for i, sa := range serviceAccounts.Items {fmt.Printf("[%d] %s\n", i, sa.GetName())}

5. 查看deploy列表

    // https://godoc.org/k8s.io/client-go/kubernetes/typed/apps/v1#AppsV1Interfacedeployments, err := clientset.AppsV1().Deployments("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get deployments:", err)}for i, deployment := range deployments.Items {fmt.Printf("[%d] %s\n", i, deployment.GetName())}

6. 查看pv列表

    pvs, err := clientset.CoreV1().PersistentVolumes().List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get persistent volumes:", err)}for i, pv := range pvs.Items {fmt.Printf("[%d] %s\n", i, pv.GetName())}

7. 查看PVC列表

   pvcs, err := clientset.CoreV1().PersistentVolumeClaims("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get persistent volume claim:", err)}for i, pvc := range pvcs.Items {fmt.Printf("[%d] %s\n", i, pvc.GetName())}

8. 查看ns列表

   namespaces, err := clientset.CoreV1().Namespaces().List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get name space:", err)}for i, ns := range namespaces.Items {fmt.Printf("[%d] %s\n", i, ns.GetName())}

9. 查看ingress列表

    // https://godoc.org/k8s.io/client-go/kubernetes/typed/extensions/v1beta1#IngressesGetter// https://godoc.org/k8s.io/client-go/kubernetes/typed/extensions/v1beta1ingresses, err := clientset.ExtensionsV1beta1().Ingresses("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get ingress:", err)}for i, ingress := range ingresses.Items {fmt.Printf("[%d] %s\n", i, ingress.GetName())}

10. 查看Secret列表

    secrets, err := clientset.CoreV1().Secrets("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get secret:", err)}for i, secret := range secrets.Items {fmt.Printf("[%d] %s\n", i, secret.GetName())}

11. 创建secret

    data := make(map[string][]byte)data["user"] = []byte("admin")data["password"] = []byte("password")// https://godoc.org/k8s.io/api/core/v1// https://godoc.org/k8s.io/client-go/kubernetes/typed/core/v1#SecretInterfacesecrets, err := clientset.CoreV1().Secrets("default").Create(&v1.Secret{TypeMeta: metav1.TypeMeta{Kind: "Secret",},ObjectMeta: metav1.ObjectMeta{Name: "generic-secret",Namespace: "default",},Data: data,})fmt.Println(secrets)

12. 查看configmap

    configMaps, err := clientset.CoreV1().ConfigMaps("").List(metav1.ListOptions{})if err != nil {log.Fatalln("failed to get config map:", err)}for i, cm := range configMaps.Items {fmt.Printf("[%d] %s\n", i, cm.GetName())}

13. 查看ingress详细信息

  ingress, err := clientset.ExtensionsV1beta1().Ingresses("jx").Get("docker-registry", metav1.GetOptions{})if err != nil {log.Fatalln("failed to get ingresses:", err)}fmt.Println(reflect.TypeOf(ingress)) // *v1beta1.Ingressfmt.Println(ingress) fmt.Println(ingress.ObjectMeta.Name) // docker-registry

参考链接:
https://pizi.netlify.app/posts/delete-existing-deployment-in-kubernetes-using-golang/

client-go开发示例相关推荐

  1. SharePoint 2013 APP 开发示例 (三)使用远程的web资源

    在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...

  2. EJB+JSF开发示例(附源码)

    刚到公司时没有接触过EJB3和JSF,为了熟悉一下做了个EJB+JSF开发示例来入门.一个比较简单的JSF的web工程做页面展现,一个简单的EJB3工程做业务操作,分别部署到Tomcat下和JBoss ...

  3. 仪表板 ajax实例,CQD 开发示例 - Skype for Business Server 2015 | Microsoft Docs

    CQD 开发示例 2021/7/29 本文内容 摘要: 查看通话质量仪表板的教程和开发示例. 通话质量仪表板是 Skype for Business Server 的工具. 本文提供了有关通话质量仪表 ...

  4. Serverless 多函数开发示例

    01. 什么是 Serverless? Serverless 的定义和理解在不同的角度和场景会有不同的解读,AWS 将 Serverless(在 AWS 云上) 定义为 "是一种用于描述服务 ...

  5. 用户自定义协议client/server代码示例

    用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc cli ...

  6. TWaver Flex开发示例及license下载

    做电信项目的朋友一定知道TWaver,而Flex版具有很好的跨平台性,很适合做B/S模式的应用. Flex版的在线DEMO:http://twaver.servasoft.com/demo/twave ...

  7. SharePoint 2013 APP 开发示例 系列

    SharePoint 2013 APP 安全: SharePoint 2013 APP 开发示例 (一)List 读写 SharePoint 2013 APP 开发示例 (二)获取用户信息 Share ...

  8. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  9. web前端开发示例_40多个针对Web开发人员HTML5教程和示例

    web前端开发示例 HTML 5 offers a lot of new features to help web developers. In the last few days, I have r ...

  10. SharePoint 2013 APP 开发示例 (二)获取用户信息

    这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的  SharePoint 2013 app: UserProfileTest. 3. 选 ...

最新文章

  1. Python dataframe指定列顺序输出 + 列数据转化成字符 + 数据框转化成列表
  2. 开源项目哪家强?Github年终各大排行榜超级盘点(内附开源项目学习资源)
  3. dev控件中LookUpEdit的数据绑定问题
  4. ant 安装及基础教程 !
  5. 公里与英里的换算c语言函数_60迈=60码=60公里?这三者天壤之别,可别搞错了
  6. web之表单form
  7. mongodb,spring data api常用总结
  8. 水晶报表-推拉模式实例
  9. 艾滋病多学科协作诊治模式的实施与成效
  10. sm缩写代表什么意思_狗狗各种表情都分别代表着什么意思
  11. 彻底解决2440触摸屏跳点以及抖动问题
  12. 若a,b互素,则a必然存在模b的逆元;若a,b不互素,则a必然不存在模b的逆元
  13. 2019云计算机峰会,计算机学院师生参加“2019华为云城市峰会”
  14. 【笔记】 欧几里得(扩展欧几里得)
  15. 转:关于正太分布和多维正态分布的理解(知乎)
  16. mysql中的left和right
  17. 一个专业跨境电商人才需要做哪些数据分析
  18. 动态IP和拨号的区别是什么?
  19. PHP网盘挂载,raidrive--网盘挂载本地硬盘工具的应用与利与弊
  20. DSP28335 epwm使用

热门文章

  1. HTML第四周学习周记
  2. IDM怎么下载电影电视剧?快来GET
  3. 人I型胶原融合蛋白神经基质膜仿生材料|新型的药物递送系统-红细胞膜仿生纳米粒
  4. 大连哪里可以学python_大连Python编程-全套系统班
  5. 机器学习特征稳定性评估-分布式scala实现
  6. android 流程指示,Android实现带有指示器的进度条
  7. 【开源硬件篇】STM32F103C8T6主控板
  8. 新用户阿里云服务器免费试用-远程桌面链接
  9. 导纳矩阵 matlab,【MATLAB代做|FPGA代做】导纳矩阵计算IEEE9
  10. Excel怎么自定义表格样式,设置每两行替换颜色