NCP erstellt für jeden Dienst-Port einen virtuellen Server und einen Pool des Load Balancers auf Schicht 4.
- TCP und UDP werden unterstützt.
- Jeder Dienst hat eine eindeutige IP-Adresse.
- Dem Dienst wird eine IP-Adresse aus einem externen IP-Pool zugeteilt, die auf dem Feld "loadBalancerIP" in der LoadBalancer-Definition basiert. Das Feld "loadBalancerIP" kann leer sein, eine IP-Adresse oder den Namen oder die ID eines IP-Pools enthalten. Wenn die Spezifikation loadBalancerIP leer ist, wird die IP-Adresse aus dem externen IP-Pool zugeteilt, der durch die external_ip_pools_lb-Option im Abschnitt [nsx_v3] in ncp.ini angegeben ist. Wenn die Option external_ip_pools_lb nicht vorhanden ist, wird der von external_ip_pools angegebene Pool verwendet. Der LoadBalancer-Dienst wird unter dieser IP-Adresse und auf dem Dienst-Port bereitgestellt.
- Sie können zu einem anderen IP-Pool wechseln, indem Sie die Konfiguration ändern und NCP neu starten.
-
Der von loadBalancerIP angegebene-IP-Pool muss über das Tag
scope: ncp/owner, tag: cluster:<cluster_name>verfügen. - Beginnend mit NCP 3.0.2 im Richtlinienmodus wird ein Dienst des Typs LoadBalancer ohne Selektor unterstützt. Bei einem solchen Dienst wird die SNAT-IP des NSX-T Load Balancers die IP des Diensts des Typs LoadBalancer sein. Die SNAT-IP des NSX-T Load Balancers wird aktualisiert, wenn Sie die IP-Adresse des Diensts des Typs LoadBalancer aktualisieren.
- Fehler werden im Dienst als Anmerkung dokumentiert. Der Fehlerschlüssel lautet ncp/error.loadbalancer. Dies sind die möglichen Fehler:
- ncp/error.loadbalancer: IP_POOL_NOT_FOUND
Dieser Fehler weist darauf hin, dass Sie loadBalancerIP: <nsx-ip-pool> angeben, <nsx-ip-pool> aber nicht vorhanden ist. Der Dienst ist dann inaktiv. Um den Fehler zu beheben, geben Sie einen gültigen IP-Pool ein, löschen Sie den Dienst und erstellen Sie ihn neu.
- ncp/error.loadbalancer: IP_POOL_EXHAUSTED
Dieser Fehler weist darauf hin, dass Sie loadBalancerIP: <nsx-ip-pool> angeben, die IP-Adressen im IP-Pool aber ausgeschöpft sind. Der Dienst ist dann inaktiv. Um den Fehler zu beheben, geben Sie einen IP-Pool mit verfügbaren IP-Adressen an, löschen Sie den Dienst und erstellen Sie ihn neu.
- ncp/error.loadbalancer: IP_POOL_NOT_UNIQUE
Dieser Fehler weist darauf hin, dass mehrere IP-Pools den von loadBalancerIP angegebenen Namen aufweisen: <nsx-ip-pool>. Der Dienst ist dann inaktiv.
- ncp/error.loadbalancer: POOL_ACCESS_DENIED
Dieser Fehler weist darauf hin, dass der von loadBalancerIP angegebene IP-Pool das Tag
scope: ncp/owner, tag: cluster:<cluster_name>nicht aufweist oder der Name des im Tag angegebenen Clusters nicht mit dem Namen des Kubernetes-Clusters übereinstimmt. - ncp/error.loadbalancer: LB_VIP_CONFLICT
Dieser Fehler weist darauf hin, dass die IP im loadBalancerIP-Feld mit der IP eines aktiven Diensts identisch ist. Der Dienst ist dann inaktiv.
- ncp/error.loadbalancer: IP_POOL_NOT_FOUND
- Der Schicht-4-Load Balancer unterstützt automatische Skalierung. Wenn ein Kubernetes-LoadBalancer-Dienst erstellt oder geändert wird, sodass er zusätzliche virtuelle Server erfordert, und der vorhandene Load Balancer auf Schicht 4 nicht über ausreichend Kapazität verfügt, wird ein neuer Load Balancer auf Schicht 4 erstellt. NCP löscht einen Load Balancer auf Schicht 4 auch, wenn keine virtuellen Server mehr an ihn angehängt sind. Diese Funktion ist standardmäßig aktiviert. Wenn Sie diese Funktion deaktivieren möchten, müssen Sie l4_lb_auto_scaling in der NCP-ConfigMap auf false festlegen.