Wytyczne dotyczące wdrażania produkcyjnego

Zabezpieczenia i skalowalność są priorytetem wdrażania Operacje Azure IoT. W tym artykule opisano wytyczne, które należy wziąć pod uwagę podczas konfigurowania Operacje Azure IoT dla środowiska produkcyjnego.

Przed rozważeniem odpowiedniej konfiguracji zdecyduj, czy wdrażasz Operacje Azure IoT w klastrze z jednym węzłem lub z wieloma węzłami. Wiele wytycznych opisanych w tym artykule ma zastosowanie niezależnie od typu klastra, ale gdy wystąpi różnica, zostanie ona wywołana specjalnie.

Platforma

Użyj środowiska obsługiwanego do wdrażania Operacje Azure IoT w środowisku produkcyjnym.

Konfiguracja klastra

Upewnij się, że konfiguracja sprzętu jest wystarczająca dla danego scenariusza i że rozpoczynasz od bezpiecznego środowiska.

Konfiguracja systemu

Utwórz klaster z obsługą usługi Arc spełniający wymagania systemowe.

Zabezpieczenia

Rozważ następujące środki, aby upewnić się, że konfiguracja klastra jest bezpieczna przed wdrożeniem.

Podczas wdrażania operacji Azure IoT z bezpiecznymi ustawieniami na AKS firma Microsoft zaleca blokowanie dostępu zasobnika do punktu końcowego usługi Azure Instance Metadata Service. Aby dowiedzieć się, jak włączyć tę funkcję, zobacz Zablokuj dostęp zasobnika do punktu końcowego usługi Azure Instance Metadata Service (IMDS).

Sieć

Jeśli używasz zapór lub serwerów proxy przedsiębiorstwa, dodaj punkty końcowe Operacje Azure IoT do listy dozwolonych.

Obserwowalność

W przypadku wdrożeń produkcyjnych wdodaj zasoby do obserwowania w klastrze przed wdrożeniem Operacje Azure IoT. Zalecamy również skonfigurowanie alertów Prometheus w Azure Monitor.

Wdrożenie

W przypadku wdrożenia gotowego do produkcji uwzględnij następujące konfiguracje podczas wdrażania Operacje Azure IoT.

broker MQTT

W kreatorze wdrażania portalu Azure zasób brokera jest konfigurowany na karcie Configuration.

Aby bezpośrednio określić ustawienia kardynalności, użyj flag Azure CLI lub pliku konfiguracji brokera.

Używanie flag interfejsu wiersza polecenia

Podczas wdrażania IoT Operations za pomocą polecenia az iot ops create użyj następujących parametrów, aby bezpośrednio określić liczbę brokerów:

az iot ops create ... --broker-frontend-replicas 3 --broker-frontend-workers 4 --broker-backend-part 3 --broker-backend-workers 4 --broker-backend-rf 2

Korzystanie z pliku konfiguracji

Alternatywnie użyj flagi --broker-config-file , aby określić plik JSON zawierający ustawienia kardynalności:

{
  "cardinality": {
    "frontend": {
      "replicas": 3,
      "workers": 4
    },
    "backendChain": {
      "partitions": 3,
      "redundancyFactor": 2,
      "workers": 4
    }
  }
}

Następnie wdróż (inne parametry pominięte dla zwięzłości):

az iot ops create ... --broker-config-file <FILE>.json

Antyafiniczność wielowęzłowa

W przypadku wdrożeń obejmujących wiele węzłów broker MQTT automatycznie ustawia reguły antykolokacji dla podów backendu. Pody zaplecza z tej samej partycji mają względem siebie antyafiniczność, co rozkłada obciążenie między węzłami i zapewnia odporność na awarie węzłów.

Te reguły są wstępnie zdefiniowane i nie można ich modyfikować.

Aby sprawdzić ustawienia ochrony przed koligacją dla zasobnika zaplecza, użyj następującego polecenia:

kubectl get pod aio-broker-backend-1-0 -n azure-iot-operations -o yaml | grep affinity -A 15

Dane wyjściowe pokazują konfigurację anti-affinity, podobną do:

affinity:
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
    - podAffinityTerm:
        labelSelector:
          matchExpressions:
          - key: chain-number
            operator: In
            values:
            - "1"
        topologyKey: kubernetes.io/hostname
      weight: 100

Rejestr schematów i magazyn

W kreatorze wdrażania w portalu Azure rejestr schematów i wymagane konto magazynu są konfigurowane na karcie Zarządzania zależnościami.

  • Konto przechowywania musi mieć aktywowaną hierarchiczną przestrzeń nazw.
  • Tożsamość zarządzana rejestru schematów musi mieć uprawnienia współtwórcy do konta magazynowego.
  • W przypadku wdrożeń produkcyjnych określ zakres dostępu do sieci publicznej konta magazynu, aby zezwolić na ruch tylko z zaufanych usług Azure. Przykład:
    1. W portalu Azure przejdź do konta magazynowego używanego przez rejestr schematów.
    2. W menu nawigacji wybierz pozycję Zabezpieczenia i sieć sieciowa>.
    3. Dla ustawienia dostępu do sieci publicznej wybierz pozycję Włączone z wybranych sieci wirtualnych i adresów IP.
    4. W sekcji Exceptions na stronie sieciowej należy się upewnić, że zaznaczono opcję Zezwól zaufanym usługom Microsoft na dostęp do tego zasobu.
    5. Wybierz Zapisz, aby zastosować zmiany.

Aby uzyskać więcej informacji, zobacz Konfigurowanie zapór Azure Storage i sieci wirtualnych > Przyznawanie dostępu zaufanym usługom Azure.

Odporność na uszkodzenia

Klastry wielowęzłowe: Odporność na uszkodzenia można włączyć na karcie Zarządzanie zależnościami kreatora wdrażania portalu Azure. Jest obsługiwana tylko w klastrach z wieloma węzłami i jest zalecana do wdrożenia produkcyjnego.

Ustawienia zabezpieczeń

Podczas wdrażania można używać ustawień testu lub bezpiecznych ustawień. W przypadku wdrożeń produkcyjnych wybierz pozycję Bezpieczne ustawienia. Jeśli uaktualniasz istniejące wdrożenie ustawień testowych dla środowiska produkcyjnego, wykonaj kroki opisane w artykule Włączanie bezpiecznych ustawień.

Po wdrożeniu

Po wdrożeniu Operacje Azure IoT należy wykonać następujące konfiguracje dla scenariusza produkcyjnego.

broker MQTT

Po wdrożeniu można edytować zasoby BrokerListener:

Możesz również edytować zasoby BrokerAuthentication.

Podczas tworzenia nowego zasobu zarządzaj jego autoryzacją:

Łącznik dla OPC UA

Aby nawiązać połączenie z elementami zawartości w środowisku produkcyjnym, skonfiguruj uwierzytelnianie OPC UA:

Przepływy danych

W przypadku korzystania z przepływów danych w środowisku produkcyjnym: