/ Art Bug
kubeadm version (benutze kubeadm version
):
v1.12.2
Ich richte ein VM-basiertes Testkabel ein, das kubeadm verwendet, um einen kleinen k8s-Cluster einzurichten. Die VMs sind so konfiguriert, dass sie IPv4-verbindungslokale Adressen einrichten und Multicast-DNS verwenden, um sich gegenseitig zu finden. Aufgrund der Art und Weise, wie die VMs eingerichtet sind, muss ich --apiserver-Advertise-Address überschreiben, damit k8s die LAN-Schnittstelle für die Knotenkommunikation verwenden, da dies nicht die Standardschnittstelle ist.
Leider überprüft kubeadm die übergebene Adresse mit .IsGlobalUnicast()
, sodass die verbindungslokale IPv4-Adresse abgelehnt wird, obwohl dies eine gültige Methode zum Einrichten eines kleinen Clusters ist.
kubeadm init
sollte verbindungslokale IPv4- oder IPv6-Adressen akzeptieren, wenn diese explizit in der Befehlszeile angegeben sind.
kubeadm init --apiserver-advertise-address=169.254.152.255
/ remove-kind Bug
/ Art Feature
/ sig Knoten
/ Prioritätsstau
/ @kad zuweisen
cc @rosti
@ Danielson
Dies ist beabsichtigt. Unsere Validierung ist nur eine Überprüfung der Integrität, da das Kubelet auch Adressen in der Hostschnittstelle ignoriert, die kein globales Unicast sind:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L305 -L308
Loopbacks werden ebenfalls überschrieben:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L408
Das Aktivieren von verbindungslokalen Adressen kann daher in den meisten Anwendungsfällen problematisch sein. Wir haben absichtlich aufgrund einiger anderer Fehlerbedingungen deaktiviert, und dieser Anwendungsfall ist keine Standard-IMO.
Angesichts der fehlenden Rechtfertigung und der allgemeinen Übereinstimmung, dass dies für die meisten Benutzer, die wir schließen, problematischer sein kann.
Wenn Ihr Anwendungsfall vereinfacht, verallgemeinert oder einfach gepatcht werden kann, können Sie ihn erneut öffnen.
Hilfreichster Kommentar
Das Aktivieren von verbindungslokalen Adressen kann daher in den meisten Anwendungsfällen problematisch sein. Wir haben absichtlich aufgrund einiger anderer Fehlerbedingungen deaktiviert, und dieser Anwendungsfall ist keine Standard-IMO.