亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go - 從 kubeconfig 文件中獲取服務器地址

Go - 從 kubeconfig 文件中獲取服務器地址

Go
慕神8447489 2023-03-07 14:03:39
基本上,我的 kubeconfig 文件有:apiVersion: v1clusters: - cluster:      server: <OAM ip address> this is what I want(...)我想獲取服務器地址。以前搜索,我找到了這個解決方案:config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)if err != nil {    panic(err.Error())}// creates the clientsetclientset, err := kubernetes.NewForConfig(config)if err != nil {    panic(err.Error())}nodes, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{})if err != nil {    panic(err)}nodeip := []corev1.NodeAddress{}for i := 0; i < len(nodes.Items); i++ {    nodeip = nodes.Items[i].Status.Addresses    fmt.Println(nodeip[0].Address)}fmt.Println(nodes.Items[0].Status.Addresses)但它給了我內部 IP,而不是 OAM 服務器 IP(在 Kubernetes 配置文件中)
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

如果您想要文件中的服務器地址,只需從您的變量kubeconfig中讀取它:config


package main


import (

    "flag"

    "fmt"

    "path/filepath"


    "k8s.io/client-go/kubernetes"

    "k8s.io/client-go/tools/clientcmd"

    "k8s.io/client-go/util/homedir"

)


func main() {

    var kubeconfig *string


    if home := homedir.HomeDir(); home != "" {

        kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")

    } else {

        kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")

    }


    flag.Parse()


    config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)

    if err != nil {

        panic(err)

    }


    fmt.Printf("server: %s\n", config.Host)

}

如果您好奇對象上還有哪些其他字段可用,一個快速的解決方案是使用格式說明符rest.Config打印出變量:config%+v


fmt.Printf("%+v\n", config)

有關詳細信息,請查看參考文檔。



查看完整回答
反對 回復 2023-03-07
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號