使用golang访问kubebernetes
https://blog.csdn.net/huwh_/article/details/78821805
https://blog.csdn.net/qq_37950254/article/details/89603207
仓库地址: https://github.com/kubernetes-client/go
OpenAPI based generated Go Client for Kubernetes
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"
"log"
)
var clientset *kubernetes.Clientset
func main() {
k8sconfig := flag.String("k8sconfig", "./k8sconfig", "kubernetes config file path")
flag.Parse()
config, err := clientcmd.BuildConfigFromFlags("", *k8sconfig)
if err != nil {
log.Println(err)
}
clientset, err = kubernetes.NewForConfig(config)
if err != nil {
log.Fatalln(err)
} else {
fmt.Println("connect k8s success")
}
//获取POD
//pods, err := clientset.CoreV1().Pods("").List(metav1.ListOptions{})
listOptions := metav1.ListOptions{}
pods, err := clientset.CoreV1().Pods("").List(context.Background(), listOptions)
if err != nil {
log.Println(err.Error())
}
fmt.Printf("pod-1名字: %v\n", pods.Items[1].Name)
fmt.Printf("pod-1创建时间戳: %v\n", pods.Items[1].CreationTimestamp)
fmt.Println(pods.Items[1].Labels)
fmt.Println(pods.Items[1].Namespace)
fmt.Println(pods.Items[1].Status.HostIP)
fmt.Println(pods.Items[1].Status.PodIP)
fmt.Println(pods.Items[1].Status.StartTime)
fmt.Println(pods.Items[1].Status.Phase)
fmt.Println(pods.Items[1].Status.ContainerStatuses[0].RestartCount) //重启次数
fmt.Println(pods.Items[1].Status.ContainerStatuses[0].Image) //获取重启时间
//获取NODE
fmt.Println("------------nodes ----------------")
//nodes, err := clientset.CoreV1().Nodes().List(context1,metav1.ListOptions{})
nodes, err := clientset.CoreV1().Nodes().List(context.Background(), listOptions)
fmt.Println(nodes.Items[0].Name)
fmt.Println(nodes.Items[0].CreationTimestamp) //加入集群时间
fmt.Println(nodes.Items[0].Status.NodeInfo)
fmt.Println(nodes.Items[0].Status.Conditions[len(nodes.Items[0].Status.Conditions)-1].Type)
fmt.Println(nodes.Items[0].Status.Allocatable.Memory().String())
for i, node := range nodes.Items {
fmt.Printf("[%d] %s\n", i, node.GetName())
}
}
标签:
k8s
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2020-07-14 Linux网络故障排查