Kubeedge-解析获取Token(keadm gettoken)
什么是keadm gettoken
leads gettoken
一般用于我们接入cloudcore的token的值的获取。
如何获取token
通过解析keadm gettoken源码,我们发现,其实keadm gettoken
本质上就是查询下了kubeedge
namespace 下的name为tokensecret
的Secret的tokendata
的值
https://github.com/kubeedge/kubeedge/blob/4ab8abe101e1037415d2c641feef642ab73a1d47/keadm/cmd/keadm/app/cmd/cloud/gettoken.go#L63
这是一个Kubeedge 获取token的最简单的抽象:
package main
import ( "context" "fmt" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" )
func main() { config, err := clientcmd.BuildConfigFromFlags("", "/Users/joohwan/k8sipconfig/K8sconfigfile") if err != nil { panic(err) }
clientset, err := kubernetes.NewForConfig(config) secret, err := clientset.CoreV1().Secrets("kubeedge").Get(context.Background(), "tokensecret", metaV1.GetOptions{}) if err != nil { panic(err) } fmt.Printf("Kubeedge JOIN TOKEN:%s", secret.Data["tokendata"]) }
|