Pra*_*n C 2 go kubernetes google-kubernetes-engine kubernetes-go-client amazon-eks
我尝试根据标签列出 pod
// Kubernetes client - package kubernetes
clientset := kubernetes.NewForConfigOrDie(config)
// create a temp list for storage
var podslice []string
// Get pods -- package metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
pods, _ := clientset.CoreV1().Pods("").List(metav1.ListOptions{})
for _, p := range pods.Items {
fmt.Println(p.GetName())
}
Run Code Online (Sandbox Code Playgroud)
这相当于
kubectl get po
Run Code Online (Sandbox Code Playgroud)
有没有办法进入golang
kubectl get po -l app=foo
Run Code Online (Sandbox Code Playgroud)
提前致谢
您可能只能使用ListOptions
参数进行设置。
listOptions := metav1.ListOptions{
LabelSelector: "app=foo",
}
pods, _ := clientset.CoreV1().Pods("").List(listOptions)
Run Code Online (Sandbox Code Playgroud)
如果您有多个标签,您可以通过labels
库执行此操作,如下面未经测试的代码:
import "k8s.io/apimachinery/pkg/labels"
labelSelector := metav1.LabelSelector{MatchLabels: map[string]string{"app": "foo"}}
listOptions := metav1.ListOptions{
LabelSelector: labels.Set(labelSelector.MatchLabels).String(),
}
pods, _ := clientset.CoreV1().Pods("").List(listOptions)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3733 次 |
最近记录: |