Klassische Cluster: Warum kann ich keine Lastausgleichsfunktion bereitstellen?

Beheben Sie Probleme bei der Bereitstellung oder Aktualisierung von Network Load Balancer (NLB)-Diensten in Ihrem Cluster.

Klassische Infrastruktur

Wenn Sie die Konfigurationszuordnung ibm-cloud-provider-vlan-ip-config in Ihrem klassischen Cluster beschreiben, wird möglicherweise eine Fehlernachricht ähnlich der folgenden Beispielausgabe angezeigt.

oc describe cm ibm-cloud-provider-vlan-ip-config -n kube-system
Warning  CreatingLoadBalancerFailed ... ErrorSubnetLimitReached: There are already the maximum number of subnets permitted in this VLAN.

Wenn Sie bei Standardclustern in einer Zone zum ersten Mal einen Cluster erstellen, werden in dieser Zone automatisch ein öffentliches und ein privates VLAN für Sie in Ihrem Konto der IBM Cloud-Infrastruktur bereitgestellt.

In dieser Zone wird ein öffentliches portierbares Teilnetz für das von Ihnen angegebene öffentliche VLAN und ein privates portierbares Teilnetz für das von Ihnen angegebene private VLAN angefordert. Bei Red Hat OpenShift on IBM Cloud gilt für VLANs ein Limit von 40 Teilnetzen. Wenn das VLAN des Clusters in einer Zone bereits diesen Grenzwert erreicht hat, verfügen Sie möglicherweise nicht über eine portierbare öffentliche IP-Adresse, um eine Netzlastausgleichsfunktion (Network Load Balancer, NLB) zu erstellen.

Gehen Sie wie folgt vor, um die Anzahl von Teilnetzen eines VLAN anzuzeigen:

  1. Wählen Sie in der Infrastrukturkonsole von IBM Cloud die Option Netzwerk > IP-Verwaltung > VLANs aus.
  2. Klicken Sie auf die VLAN-Nummer des VLANs, mit dem Sie Ihren Cluster erstellt haben. Überprüfen Sie den Abschnitt Teilnetze, um zu sehen, ob mehr als 40 Teilnetze vorhanden sind.

Wenn Sie ein neues VLAN benötigen, wenden Sie sich an den IBM Cloud-Support und fordern Sie es an.

Erstellen Sie dann einen Cluster, der dieses neue VLAN verwendet.

Wenn Sie bereits ein verfügbares VLAN haben, können Sie VLAN Spanning in Ihrem vorhandenen Cluster konfigurieren. Anschließend können Sie dem Cluster neue Workerknoten hinzufügen, die das andere VLAN mit verfügbaren Teilnetzen verwenden. Verwenden Sie den ibmcloud oc vlan spanning get --region REGION-Befehl, um zu überprüfen, ob die übergreifende VLAN-Verarbeitung bereits aktiviert ist.

Wenn Sie nicht alle Teilnetze im VLAN verwenden, können Sie Teilnetze im VLAN wiederverwenden, indem Sie sie zu Ihrem Cluster hinzufügen.

  1. Prüfen Sie, ob das Teilnetz, das Sie verwenden möchten, verfügbar ist.

    Das Infrastrukturkonto, das Sie verwenden, wird möglicherweise von mehreren IBM Cloud-Konten gemeinsam verwendet. In diesem Fall können Sie nur Informationen zu Ihren Clustern anzeigen, selbst wenn Sie den Befehl ibmcloud oc subnets ausführen, um Teilnetze mit gebundenen Clustern zu sehen. Besprechen Sie sich mit dem Eigner des Infrastrukturkontos, um sicherzustellen, dass die Teilnetze verfügbar sind und nicht von einem anderen Konto oder Team verwendet werden.

  2. Verwenden Sie den Befehl ibmcloud oc cluster subnet add, um ein vorhandenes Subnetz für Ihren Cluster verfügbar zu machen.

  3. Überprüfen Sie, ob das Teilnetz erfolgreich erstellt und zu Ihrem Cluster hinzugefügt wurde. Das Teilnetz-CIDR wird im Abschnitt für Teilnetz-VLANs aufgeführt.

    ibmcloud oc cluster get --cluster CLUSTER_NAME --show-resources
    

    In dieser Beispielausgabe wurde dem öffentlichen VLAN 2234945 ein zweites Teilnetz hinzugefügt:

    Subnet VLANs
    VLAN ID   Subnet CIDR          Public   User-managed
    2234947   10.xxx.xx.xxx/29     false    false
    2234945   169.xx.xxx.xxx/29    true     false
    2234945   169.xx.xxx.xxx/29    true     false
    
  4. Stellen Sie sicher, dass die portierbaren IP-Adressen aus dem Teilnetz, das Sie hinzugefügt haben, als Wert für EXTERNAL-IP für die Lastausgleichsfunktion verwendet werden. Es kann einige Minuten dauern, bis die Services die portierbaren IP-Adressen aus dem neuen Teilnetz verwenden.

    oc get svc -n kube-system