Udostępnij za pośrednictwem


Konfigurowanie modułu równoważenia obciążenia usługi w usłudze Azure Operator Nexus Kubernetes

Z tego artykułu dowiesz się, jak skonfigurować moduł równoważenia obciążenia usługi w klastrze Nexus Kubernetes. Moduł równoważenia obciążenia umożliwia usługom zewnętrznym dostęp do usług uruchomionych w klastrze. Ten przewodnik koncentruje się na aspektach konfiguracji, podając przykłady ułatwiające zrozumienie procesu. Korzystając z tego przewodnika, możesz skutecznie skonfigurować moduły równoważenia obciążenia usługi w klastrze Nexus Kubernetes.

Wymagania wstępne

Przed kontynuowaniem tego przewodnika z instrukcjami zaleca się wykonanie następujących czynności:

  • Zapoznaj się z przewodnikiem Szybki start dotyczącym klastra Nexus Kubernetes, aby zapoznać się z kompleksowym omówieniem i krokami.
  • Upewnij się, że zostały spełnione określone wymagania wstępne, aby zapewnić bezproblemową implementację przewodnika.
  • Znajomość pojęć związanych z platformą Kubernetes, w tym wdrożeń i usług.
  • Skontaktuj się z administratorem sieci, aby uzyskać zakres adresów IP, który może być używany dla puli adresów IP modułu równoważenia obciążenia.

Ograniczenia

  • Konfiguracja puli adresów IP jest niezmienna: po ustawieniu nie można jej modyfikować w klastrze Kubernetes Nexus.
  • Nazwy puli adresów IP muszą zaczynać się od małej litery lub cyfry i kończyć się małą literą lub cyfrą.
  • Nazwy puli adresów IP nie powinny przekraczać 63 znaków, aby uniknąć potencjalnych problemów lub ograniczeń.
  • Pule adresów IP nie powinny nakładać się na istniejące prefiksy CIDR pod, CIDR usługi lub CNI, aby zapobiec konfliktom i problemom z siecią w klastrze.

Ważne

Te instrukcje dotyczą tworzenia nowego klastra Nexus Kubernetes. Unikaj stosowania szablonu Bicep do istniejącego klastra, ponieważ konfiguracja puli adresów IP jest niezmienna. Po utworzeniu klastra przy użyciu konfiguracji puli adresów IP nie można go zmodyfikować.

Opcje konfiguracji

Przed skonfigurowaniem puli adresów IP dla modułu równoważenia obciążenia usługi należy zapoznać się z różnymi dostępnymi opcjami konfiguracji. Te opcje umożliwiają zdefiniowanie zachowania i parametrów puli adresów IP zgodnie z określonymi wymaganiami.

Przyjrzyjmy się opcjom konfiguracji puli adresów IP.

Parametry wymagane

Konfiguracja puli adresów IP wymaga obecności dwóch pól: addresses i name. Te pola są niezbędne do definiowania zakresu adresów IP i identyfikowania puli.

  • Pole addresses określa listę zakresów adresów IP, których można użyć do alokacji w puli. Każdy zakres można zdefiniować jako podsieć w formacie CIDR. Unikaj używania jednego adresu IP, takiego jak /32 dla protokołów IPv4 i /128 dla protokołu IPv6.
  • Pole name służy jako unikatowy identyfikator puli adresów IP. Pomaga skojarzyć pulę z anonsem BGP (Border Gateway Protocol), umożliwiając skuteczną komunikację w klastrze.

Uwaga

Aby umożliwić usłudze Kubernetes posiadanie adresu podwójnego stosu, upewnij się, że konfiguracja puli adresów LoadBalancer IP obejmuje protokół IPv4 i IPv6 CIDR.

Parametry opcjonalne

Oprócz wymaganych pól dostępne są również opcjonalne pola umożliwiające dalsze dostosowywanie konfiguracji puli adresów IP.

  • Pole autoAssign określa, czy adresy IP są automatycznie przypisywane z puli. To pole jest typem string z wartością Truedomyślną . Można ustawić ją na True wartość lub False na podstawie preferencji.
  • Pole onlyUseHostIps steruje użyciem adresów IP kończących się na .0 i .255 w puli. Włączenie tej opcji ogranicza użycie do adresów IP między .1 i .254 (włącznie), z wyłączeniem zarezerwowanych adresów sieci i emisji.

Parametry szablonu Bicep dla konfiguracji puli adresów IP

Poniższy fragment kodu JSON przedstawia parametry wymagane do skonfigurowania puli adresów IP w szablonie Bicep.

"ipAddressPools": {
  "value": [
    {
      "addresses": ["<IP>/<CIDR>"],
      "name": "<pool-name>",
      "autoAssign": "True",  /* "True"/"False" */
      "onlyUseHostIps": "True"  /* "True"/"False" */
    }
  ]
}

Aby dodać konfigurację puli adresów IP do klastra, należy zaktualizować kubernetes-deploy-parameters.json plik utworzony podczas przewodnika Szybki start. Uwzględnij konfigurację puli adresów IP w tym pliku zgodnie z żądanymi ustawieniami.

Po dodaniu konfiguracji puli adresów IP do pliku parametrów możesz kontynuować wdrażanie szablonu Bicep. Ta akcja powoduje skonfigurowanie nowego klastra przy użyciu określonej konfiguracji puli adresów IP, co umożliwia korzystanie z puli adresów IP zgodnie z oczekiwaniami.

Korzystając z tych instrukcji, możesz utworzyć nowy klaster Kubernetes Nexus z odpowiednią konfiguracją puli adresów IP i skorzystać z puli adresów IP dla usług klastra.

Przykładowe parametry

Ten plik parametrów ma być używany z szablonem przewodnika Szybki start Bicep do tworzenia klastra z włączonym modułem równoważenia obciążenia BGP. Zawiera on niezbędne ustawienia konfiguracji do skonfigurowania klastra z funkcją modułu równoważenia obciążenia BGP. Korzystając z tego pliku parametrów z szablonem Bicep, można utworzyć klaster z żądanymi możliwościami modułu równoważenia obciążenia BGP.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "kubernetesClusterName":{
      "value": "lb-test-cluster"
    },
    "adminGroupObjectIds": {
      "value": [
        "00000000-0000-0000-0000-000000000000"
      ]
    },
    "cniNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
    },
    "cloudServicesNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
    },
    "extendedLocation": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
    },
    "location": {
      "value": "eastus"
    },
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa AAAAB..."
        },
        {
          "keyData": "ssh-rsa AAAAC..."
        }
      ]
    },
    "ipAddressPools": {
      "value": [
        {
          "addresses": ["<IP>/<CIDR>"],
          "name": "<pool-name>",
          "autoAssign": "True",
          "onlyUseHostIps": "True"
        }
      ]
    }
  }
}

Uwaga

Jeśli zamierzasz utworzyć usługę DualStack, upewnij się, że pula adresów zawiera zarówno ciDR IPv4, jak i IPv6 CIDR. Umożliwia to jednoczesne obsługę adresów IPv4 i IPv6 w konfiguracji modułu równoważenia obciążenia.

Przykład: alokacja statycznego adresu IP dla usługi

Aby przydzielić statyczny adres IP dla usługi, możesz użyć następujących poleceń.

Tworzenie wdrożenia

kubectl create deployment nginx --image=nginx --port 80

Statyczna alokacja adresów IP (LoadBalancerIP)

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool1-static \
    --type LoadBalancer \
    --load-balancer-ip <IP from pool-1>

Zastąp <IP from pool-1> ciąg żądanym adresem IP z puli adresów IP.

Statyczna alokacja adresów IP (ExternalIP)

kubectl expose deployment nginx \
    --name nginx-clusterip-pool1-static \
    --type ClusterIP \
    --external-ip <IP from pool-1>

Zastąp <IP from pool-1> ciąg żądanym adresem IP z puli adresów IP.

Przykład: alokacja adresów IP dla usługi z określonej puli adresów IP

Aby przydzielić adres IP dla usługi z określonej puli adresów IP, możesz użyć następującego polecenia.

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool2-auto \
    --type LoadBalancer \
    --overrides '{"metadata":{"annotations":{"metallb.universe.tf/address-pool":"pool-2"}}}'

To polecenie przypisuje adres IP do usługi z puli pool-2adresów IP . Dostosuj nazwę puli zgodnie z potrzebami. Przed wypróbowaniem tych przykładów upewnij się, że utworzono już klaster Nexus Kubernetes z dwoma różnymi pulami adresów IP. Jeśli nie zostało to zrobione, wykonaj niezbędne kroki, aby utworzyć klaster i odpowiednio skonfigurować pule adresów IP.

Uwaga

Nazwa puli adresów IP uwzględnia wielkość liter. Podczas określania nazwy puli pamiętaj, aby użyć poprawnego przypadku.

Następne kroki

Możesz spróbować wdrożyć funkcję sieciową (NF) w klastrze Nexus Kubernetes przy użyciu nowo skonfigurowanego modułu równoważenia obciążenia. Ta konfiguracja umożliwia przetestowanie możliwości równoważenia obciążenia i obserwowanie dystrybucji ruchu między wystąpieniami systemu plików NF.