2 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個贊
我不想使用 kubectl 命令。
kubectl
是REST
k8s 的客戶端API server
。如果您不想使用它 - 您將需要手動執(zhí)行相同的請求。
在不與API Server
. 這API Server
是唯一的事實(shí)來源,所有控制器都在使用API Server
來執(zhí)行所需的更改。因此,您可能應(yīng)該依賴API Server
.
您可以通過kubectl
以下方式獲取特定節(jié)點(diǎn)的 pod:
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
看看這個:Kubernetes API - 在特定節(jié)點(diǎn)上獲取 Pod
您也可以不使用kubectl
- 閱讀以下內(nèi)容:Kubernetes API

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個贊
您可以使用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())
}
}
- 2 回答
- 0 關(guān)注
- 365 瀏覽
添加回答
舉報