2016-12-27 21 views
4

我想(以編程方式)獲取我的kubernetes集羣中所有可調度節點的列表。如何識別Kubernetes中的可調度節點

我相當肯定,這使用於kubectl get nodes(使用JSON或模板輸出)的全部輸出看着.spec.unschedulable是可能的,但現在看來,這個信息是scheduler.alpha.kubernetes.io/taints關鍵,這是更難裏面解析只是感覺不到正確的地方。

是否有其他方法可以找到此信息?我錯過了明顯的東西嗎?目前我正在使用1.5.1版本。

更新:我可以幾乎一些圍棋模板那裏:

$ kubectl get nodes -o go-template='{{range .items}}{{with $x := index .metadata.annotations "scheduler.alpha.kubernetes.io/taints"}}{{.}}{{end}}{{end}}' 
[{"key":"dedicated","value":"master","effect":"NoSchedule"}] 

但是,這給我留下了JSON的斑點,我不能在模板解析,我還是要反轉結果並獲取節點名稱。

更新2:顯然不可調度節點應該有.spec.unschedulable集。這似乎並不總是如此;不知道這是由於我的錯誤還是誤解。

回答

1

unschedulable默認爲false,因此該值不會出現在規範中,除非設置爲true。該值隱含在規範中。

+0

我知道這一點。根據我的更新,我有一個不可調整的節點,沒有設置'.spec.unschedulable'。該節點確實有一個「污點」,說它是不可調度的,沒有豆莢可以安排在節點上。目前,我懷疑這只是一個錯誤。 –