是否有任何k8s rest api端点来获取所有吊舱及其特定节点的详细信息。
我使用minikube,并使用kubectl proxy --port=7070 &
启动了代理。
我们有 GET /api/v1/namespaces/{namespace-name}/pods
这样的端点。我们是否有任何类似的端点来访问属于特定节点的Pod?我不想使用kubectl命令。
答案 0 :(得分:2)
我不想使用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
答案 1 :(得分:0)
您可以使用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())
}
}