2016-07-25 5 views
0

Einer der Anfangsparameter des kubelet ist -api-servers = []: Liste der Kubernetes-API-Server zum Veröffentlichen von Ereignissen und Lesen von Pods und Diensten. (IP: Port), Komma getrennt.kubelet wählt nur den ersten gegebenen api-Server aus, verursacht alle nicht verfügbaren Dienste

Es scheint, dass es für die HA des api-Servers entworfen wurde, nur wenn einer der api-Server lebt, dass alles gut funktioniert.

Aber ich fand, dass das Kubelet nur den ersten API-Server wählen würde, selbst wenn ich ihm 3 API-Server geben würde. Wenn der erste API-Server gestoppt wurde, waren alle Dienste nicht verfügbar.

Die Version, die ich verwenden: Kubernetes v1.2.1

So gibt es irgendwelche Möglichkeiten, dieses Problem zu vermeiden, Hoffentlich Ich benutze es nur in einer falschen Weise. Oder ich kann es im kubelet reparieren.

Irgendwelche Anmerkungen werden geschätzt.

Antwort

1

Dies wird erwartet. Kurz gesagt, erwartet das aktuelle Modell für HA einen Lastausgleich (z. B. gcplb/elb/nginx/haproxy) vor dem Apisover, so dass Knotenkomponenten nicht mehrere Apiserver kennen müssen. Es ist jedoch bekannt, dass es notwendig ist, mehrere Apiserver-Endpoints an Kubernetes-Komponenten zu übergeben, und dass es für kubernetes v1.4 fest installiert ist.

Siehe die ausführlichen Diskussionen in https://github.com/kubernetes/kubernetes/issues/18174