LoadBalancer zum vorhandenen Dienst hinzufügen

LoadBalancer zum vorhandenen Dienst hinzufügen

Befolgen Sie dieses Gästebuch-Tutorial.

Gegen Ende wird kurz erläutert, wie man einen Dienst erstellt LoadBalanceroder zuweist . Sie verweisen aufNodePortsdieses Dokumentdas die verschiedenen Typen und ihre Funktion beschreibt, aber nicht wirklich im Detail darauf eingeht, wie man sie auf einen Dienst anwendet. Gibt es eine Möglichkeit, den laufenden Dienst zu aktualisieren, indem man einen Load Balancer erstellt und an die angegebenen Ports anfügt?

Wir verwenden Amazon Web Services zum Hosten unseres Clusters. Es unterstützt den Load Balancer hervorragend beim Erstellen eines Dienstes, aber ich bin nicht sicher, wie ich den Dienst ändern kann.

BEARBEITEN:

Bei diesem Versuch ist ein Fehler aufgetreten:

$ kubectl expose service frontend --port=80 --type=LoadBalancer
Fehler vom Server: Dienst „frontend“ existiert bereits

Antwort1

Es ist ziemlich verwirrend, aber anscheinend kubectl exposekann nur ein neuer Dienst erstellt, aber kein vorhandener aktualisiert werden. Es heißt, dass Sie beim Ausführen auf einem vorhandenen Dienst ein --nameFlag übergeben sollten, um den gewünschten Namen des neuen Dienstes anzugeben und so den Konflikt zu vermeiden, den Sie gesehen haben.

kubectl patchUm einen Dienst direkt zu aktualisieren, sollten Sie entweder oder verwenden können kubectl update. Das ist wahrscheinlich nicht die optimale Vorgehensweise, aber ich persönlich neige dazu, so etwas zu tun, indem ich ausführe , svc.yaml nach Wunsch aktualisiere ( in diesem Fall kubectl get svc svc-name -o yaml > svc.yamlzu haben ) und dann .type: LoadBalancerkubectl update -f svc.yaml

Antwort2

Ich bin nicht sicher, ob dies für Ihren Fall geeignet ist, aber ein radikalerer und einfacherer Ansatz wäre, den Dienst (aber nicht die Bereitstellung) zu löschen:

kubectl delete service 'service-name'

und stellen Sie die Bereitstellung erneut als LoadBalancer bereit:

kubectl expose deployment/'deployment-name' --type="LoadBalancer"

Antwort3

Sie können es auf folgende Weise tun:

  • interaktiv kubectl edit <SERVICE_NAME>und ändern Sie den Typ im Editor in „LoadBalancer“
  • in einem Befehl durchkubectl patch <SERVICE_NAME> -p '{"spec":{"type":"LoadBalancer"}}'

verwandte Informationen