在Kubernetes Go API中,根据给定的IP获取Pod。

huangapple go评论73阅读模式
英文:

Get pod with given IP in Kubernetes go api

问题

我正在使用 Kubernetes 的 Go API。我有一个 Pod 的 IP,我想找到具有该 IP 的 Pod 的 v1.pod 对象(或者只是名称和命名空间)。我该如何操作?

英文:

I'm using the kubernetes go api. I have the IP of a pod, and I want to find the v1.pod object (or just name and namespace) of the pod that has that IP. How can I go about this?

答案1

得分: 2

原来你需要使用FieldSelector。在这种情况下,字段是status.podIP

import (
	[...]
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	[...]
)

[...]

pods, err := clientset.CoreV1().Pods("").List(context.Background(), metav1.ListOptions{FieldSelector: "status.podIP=" + address})

其中clientset*kubernetes.Clientsetaddress是Pod的字符串IP。

英文:

Turns out you need to use a FieldSelector. The field in this case is status.podIP.

import (
	[...]
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	[...]
)

[...]

pods, err := clientset.CoreV1().Pods("").List(context.Background(), metav1.ListOptions{FieldSelector: "status.podIP=" + address})

Where clientset is a *kubernetes.Clientset and address is the string IP of the pod

huangapple
  • 本文由 发表于 2022年2月1日 03:20:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/70931664.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定