第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 client-go API 列出部署控制器管理的 pod 不起作用

使用 client-go API 列出部署控制器管理的 pod 不起作用

Go
翻閱古今 2022-06-21 10:36:43
我在 Go 中使用本機(jī) client-go API 來(lái)獲取在給定命名空間(“默認(rèn)”)下由 Deployment 類型控制器管理的 Pod 列表,但返回的列表不包含 Pod 列表labelSelector := labels.Set(obj.Spec.Selector.MatchLabels)https://pkg.go.dev/k8s.io/api/apps/v1?tab=doc#Deploymentobj的類型*appsv1.Deployment在哪里podsList, err := getPodList(string(labelSelector.AsSelector().String()), kubeClient, res.Namespace)函數(shù)定義為func getPodList( labelSelector string, client kubernetes.Interface, ns string ) (*corev1.PodList, error) {          options := metav1.ListOptions{         LabelSelector: labelSelector,     }     podList, err := client.CoreV1().Pods(ns).List(options)     return podList, err }返回的類型 - https://pkg.go.dev/k8s.io/api/core/v1?tab=doc#PodList應(yīng)該包含Items []Pod我返回的信息中不可用的切片。在 Go 代碼中使用以下包appsv1 "k8s.io/api/apps/v1"    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/apimachinery/pkg/labels""k8s.io/client-go/kubernetes"
查看完整描述

1 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

似乎我一直都在工作,但只是CoreV1().Pods(ns).List(options)錯(cuò)誤地處理了返回類型。它返回一個(gè)指向切片的指針PodList- https://pkg.go.dev/k8s.io/api/core/v1?tab=doc#PodList


這是最小的代碼,我所做的工作可能對(duì)后代有用


package main


import (

        "fmt"

        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

        "k8s.io/client-go/kubernetes"

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

        "os"

        "path/filepath"

)


func main() {


        kubeconfig := filepath.Join(

                os.Getenv("HOME"), ".kube", "config",

        )


        // Initialize kubernetes-client

        cfg, err := clientcmd.BuildConfigFromFlags("", kubeconfig)

        if err != nil {

                fmt.Printf("Error building kubeconfig: %v\n", err)

                os.Exit(1)

        }


        // create new client with the given config

        // https://pkg.go.dev/k8s.io/client-go/kubernetes?tab=doc#NewForConfig

        kubeClient, err := kubernetes.NewForConfig(cfg)

        if err != nil {

                fmt.Printf("Error building kubernetes clientset: %v\n", err)

                os.Exit(2)

        }


        // use the app's label selector name. Remember this should match with 

        // the deployment selector's matchLabels. Replace <APPNAME> with the 

        // name of your choice

        options := metav1.ListOptions{

                LabelSelector: "app=<APPNAME>",

        }


        // get the pod list

        // https://pkg.go.dev/k8s.io/client-go@v11.0.0+incompatible/kubernetes/typed/core/v1?tab=doc#PodInterface

        podList, _ := kubeClient.CoreV1().Pods("default").List(options)


        // List() returns a pointer to slice, derefernce it, before iterating

        for _, podInfo := range (*podList).Items {

                fmt.Printf("pods-name=%v\n", podInfo.Name)

                fmt.Printf("pods-status=%v\n", podInfo.Status.Phase)

                fmt.Printf("pods-condition=%v\n", podInfo.Status.Conditions)

        }

}


查看完整回答
反對(duì) 回復(fù) 2022-06-21
  • 1 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)