如何解决使用K8S Rest API从特定节点获取Pod
是否有任何k8s rest api端点来获取所有吊舱及其特定节点的详细信息。
我使用minikube,并使用kubectl proxy --port=7070 &
启动了代理。
我们有 GET /api/v1/namespaces/{namespace-name}/pods
这样的端点。我们是否有任何类似的端点来访问属于特定节点的Pod?我不想使用kubectl命令。
解决方法
我不想使用kubectl命令。
{% for newdatain data%}
<tr>
<td>lesson_name</td>
<td>lesson_day </td>
<td>course name(i want to display)</td>
</tr>
{% endfor %}
是k8 kubectl
的{{1}}客户端。如果您不想使用它-您将需要手动执行相同的请求。
没有与REST
对话就无法从k8s集群获取信息的“合法”方法。 API server
是唯一的事实来源,所有控制器都在使用API Server
执行所需的更改。因此,可能您应该依靠API Server
提供的信息。
您可以使用API Server
通过以下方式获取特定节点的吊舱:
API Server
检查以下内容:Kubernetes API - gets Pods on specific nodes
您也可以在不使用kubectl
的情况下执行此操作-阅读:The Kubernetes API
您可以使用client-go
库与API server
进行通话。这是一个例子。
import (
"github.com/golang/glog"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
config,err := clientcmd.BuildConfigFromFlags("","")
if err != nil {
glog.Errorln(err)
}
clientset,err := kubernetes.NewForConfig(config)
if err != nil {
glog.Errorln(err)
}
pods,err := clientset.CoreV1().Pods("").List(context.TODO(),metav1.ListOptions{})
if err != nil {
panic(err.Error())
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。