当前位置: > > > > 如何使用 ServiceAccount Token 连接 Kubernetes 集群?
来源:stackoverflow
2024-04-19 13:03:34
0浏览
收藏
今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何使用 ServiceAccount Token 连接 Kubernetes 集群?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!
问题内容
对于任何示例,client-go 使用 kubeconfig 文件连接到 kubernetes 集群,但我不想这样做。我已经创建了一个服务帐户,现在我有了一个 serviceaccount 令牌,如何在 kubernetes 集群外部使用此令牌连接到 kubernetes 集群?
package main import ( "flag" "k8s.io/client-go/tools/clientcmd" "log" "k8s.io/client-go/kubernetes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "fmt" ) 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") } pods,err := clientset.CoreV1().Pods("").List(metav1.ListOptions{}) if err != nil { log.Println(err.Error()) } }
解决方案
client-go 已经具有内置身份验证,集群内身份验证(从具有 serviceaccount 的 pod 中使用)和集群外身份验证(用于从集群外部使用,例如用于本地开发)
client-go 有两个示例:
- – 它正在使用 serviceaccount 令牌
集群内示例非常短:
// creates the in-cluster config config, err := rest.InClusterConfig() if err != nil { panic(err.Error()) } // creates the clientset clientset, err := kubernetes.NewForConfig(config) if err != nil { panic(err.Error()) }
您需要导入 "k8s.io/client-go/rest"
终于介绍完啦!小伙伴们,这篇关于《如何使用 ServiceAccount Token 连接 Kubernetes 集群?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~公众号也会发布Golang相关知识,快来关注吧!