【发布时间】:2021-03-21 22:50:41
【问题描述】:
对于任何示例,client-go 使用 kubeconfig 文件连接到 kubernetes 集群,但我不想这样做。我已经创建了一个服务账户,现在我有了一个ServiceAccount Token,如何在kubernetes集群外用这个token连接到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())
}
}
【问题讨论】:
标签: go kubernetes client-go