2016-12-27 6 views
4

私はkubernetesクラスタ内のすべてのスケジューリング可能なノードのリストを(プログラムで)取得したいと考えています。Kubernetesでスケジューリング可能なノードを特定する方法

私はこれが(JSONまたはテンプレートの出力を使用して)kubectl get nodesのフル出力で.spec.unschedulableを見ることで可能にするために使用かなり確信しているが、今ではこの情報を解析することは非常に困難ですscheduler.alpha.kubernetes.io/taintsキー、内側にあるようです正しい場所のようには感じられません。

この情報を見つけるには別の方法がありますか?私は明白な何かを欠いていますか私は現在バージョン1.5.1を使用しています。

UPDATE:私ははほとんどいくつかの囲碁のテンプレートとそこに着くことができます。

$ 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'が設定されていない、予期しないノードがありました。ノードは予定外であり、ノード上にポッドをスケジューリングすることができないと言う「汚れ」がありました。現在、私はそれが単なるバグだと思う。 –

関連する問題