我在 Go 中使用本机 client-go API 来获取在给定命名空间(“默认”)下由 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)
函数定义为
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应该包含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"