Kubeadm: `kubeadm init --token-ttl 0` (flag) und `tokenTTL: "0"` (config) sind seit 1.8.0 defekt

Erstellt am 26. Okt. 2017  ·  4Kommentare  ·  Quelle: kubernetes/kubeadm

Ist dies ein FEHLERBERICHT oder eine FEATURE-ANFRAGE?

FEHLERBERICHT (kopiert aus hinterlegt ist https://github.com/kubernetes/kubernetes/issues/5363)

Versionen

1.8.0 - bis zum aktuellen Master (2017-10-26)

Was ist passiert?

Wenn kubeadm mit einem Token verwendet wird, das von kubeadm tokengeneriert im Voraus generiert wurde, aber auch wenn kubeadm das Token erstellen lässt, wird eine tokenTTL Konfiguration ignoriert. Das gleiche gilt, wenn keine Konfigurationsdatei verwendet wird, sondern kubeadm init --token-ttl 0

Was haben Sie erwartet?

Ich würde erwarten, wenn ein TokenTTL von 0s bereitgestellt wird, dass das Token nicht abläuft.

Wie kann man es reproduzieren (so minimal und genau wie möglich)?

Siehe https://github.com/kubernetes/kubernetes/issues/53637, wo @rhuss dies schön beschrieben hat.

Müssen wir noch etwas wissen?

Dieser Fehler wurde in https://github.com/kubernetes/kubernetes/pull/48783 eingeführt, als die Standard-Token-TTL geändert wurde.

Der Standardmechanismus der API-Maschinerie hat keine Möglichkeit, zwischen einem nicht gesetzten Wert und einem explizit auf Null gesetzten Wert zu unterscheiden.

Ich habe diese Änderung manuell getestet, aber anscheinend nur für kubeadm token create --ttl 0 , was gut funktioniert, weil es nicht den MasterConfiguration-Standardmechanismus verwendet.

kinbug prioritimportant-soon

Hilfreichster Kommentar

Meine aktuelle Problemumgehung besteht darin, _nach_ kubeadm init ein zusätzliches Token zu erstellen:

kubeadm init --config /etc/kubernetes/kubeadm.yml
kubeadm token create --ttl 0 --groups system:bootstrappers:kubeadm:default-node-token --description "Bootstrap token which does not expire"

Das spätere Token wird dann für kubeadm join auf den Knoten verwendet.

Alle 4 Kommentare

cc @kubernetes/sig-cluster-lifecycle-bugs
/ Fehler eingeben

Meine aktuelle Problemumgehung besteht darin, _nach_ kubeadm init ein zusätzliches Token zu erstellen:

kubeadm init --config /etc/kubernetes/kubeadm.yml
kubeadm token create --ttl 0 --groups system:bootstrappers:kubeadm:default-node-token --description "Bootstrap token which does not expire"

Das spätere Token wird dann für kubeadm join auf den Knoten verwendet.

Danke @mattmoyer für den Bugfix :clap:! Genehmigt

Dies ist in master behoben und sollte in v1.8.3 sein.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen