Udostępnij za pośrednictwem


Ustawienia konfiguracji klastra autonomicznego w systemie Windows

W tym artykule opisano ustawienia konfiguracji autonomicznego klastra usługi Azure Service Fabric, który można ustawić w pliku ClusterConfig.json . Ten plik służy do określania informacji o węzłach klastra, konfiguracjach zabezpieczeń, a także topologii sieci pod względem domen błędów i uaktualniania. Po zmianie lub dodaniu ustawień konfiguracji można utworzyć klaster autonomiczny lub uaktualnić konfigurację klastra autonomicznego.

Po pobraniu autonomicznego pakietu usługi Service Fabric zostaną również dołączone ClusterConfig.json przykłady. Przykłady zawierające ciąg "DevCluster" w nazwach tworzą klaster ze wszystkimi trzema węzłami na tej samej maszynie przy użyciu węzłów logicznych. Z tych węzłów co najmniej jeden musi być oznaczony jako węzeł podstawowy. Ten typ klastra jest przydatny w środowiskach programistycznych lub testowych. Nie jest obsługiwany jako klaster produkcyjny. Przykłady o nazwie "MultiMachine" ułatwiają tworzenie klastrów klasy produkcyjnej z każdym węzłem na oddzielnej maszynie. Liczba węzłów podstawowych dla tych klastrów zależy od poziomu niezawodności klastra. W wersji 5.7 interfejs API w wersji 05-2017 usunęliśmy właściwość poziomu niezawodności. Zamiast tego nasz kod oblicza najbardziej zoptymalizowany poziom niezawodności klastra. Nie należy próbować ustawić wartości dla tej właściwości w wersjach 5.7 lub nowszych.

  • ClusterConfig.Unsecure.DevCluster.json i ClusterConfig.Unsecure.MultiMachine.json pokazują, jak utworzyć odpowiednio niezabezpieczony klaster testowy lub produkcyjny.

  • ClusterConfig.Windows.DevCluster.json i ClusterConfig.Windows.MultiMachine.json pokazują, jak utworzyć klastry testowe lub produkcyjne zabezpieczone przy użyciu zabezpieczeń systemu Windows.

  • ClusterConfig.X509.DevCluster.json i ClusterConfig.X509.MultiMachine.json pokazać, jak tworzyć klastry testowe lub produkcyjne zabezpieczone przy użyciu zabezpieczeń opartych na certyfikatach X509.

Teraz przyjrzyjmy się różnym sekcjom pliku ClusterConfig.json.

Ogólne konfiguracje klastra

Ogólne konfiguracje klastra obejmują szerokie konfiguracje specyficzne dla klastra, jak pokazano w poniższym fragmencie kodu JSON:

    "name": "SampleCluster",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "01-2017",

Możesz nadać klastrowi usługi Service Fabric dowolną przyjazną nazwę, przypisując ją do zmiennej nazwy. ClusterConfigurationVersion to numer wersji klastra. Zwiększ go za każdym razem, gdy uaktualniasz klaster usługi Service Fabric. Pozostaw parametr apiVersion ustawiony na wartość domyślną.

Węzły w klastrze

Węzły w klastrze usługi Service Fabric można skonfigurować przy użyciu sekcji węzłów, jak pokazano w poniższym fragmencie kodu:

"nodes": [{
    "nodeName": "vm0",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType0",
    "faultDomain": "fd:/dc1/r0",
    "upgradeDomain": "UD0"
}, {
    "nodeName": "vm1",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType1",
    "faultDomain": "fd:/dc1/r1",
    "upgradeDomain": "UD1"
}, {
    "nodeName": "vm2",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType2",
    "faultDomain": "fd:/dc1/r2",
    "upgradeDomain": "UD2"
}],

Klaster usługi Service Fabric musi zawierać co najmniej trzy węzły. Możesz dodać więcej węzłów do tej sekcji zgodnie z konfiguracją. W poniższej tabeli opisano ustawienia konfiguracji dla każdego węzła:

Konfiguracja węzła Opis
nodeName Możesz podać dowolną przyjazną nazwę węzłowi.
iPAddress Znajdź adres IP węzła, otwierając okno polecenia i wpisując polecenie ipconfig. Zanotuj adres IPV4 i przypisz go do zmiennej iPAddress.
nodeTypeRef Do każdego węzła można przypisać inny typ węzła. Typy węzłów są zdefiniowane w poniższej sekcji.
faultDomain Domeny błędów umożliwiają administratorom klastra definiowanie węzłów fizycznych, które mogą zakończyć się niepowodzeniem w tym samym czasie z powodu współużytkowanych zależności fizycznych.
upgradeDomain Domeny uaktualniania opisują zestawy węzłów, które są zamykane dla uaktualnień usługi Service Fabric w mniej więcej tym samym czasie. Możesz wybrać węzły do przypisania do których domen uaktualnienia, ponieważ nie są one ograniczone przez żadne wymagania fizyczne.

Właściwości klastra

Sekcja właściwości w ClusterConfig.json służy do konfigurowania klastra, jak pokazano poniżej:

Niezawodność

Koncepcja niezawodnościLevel definiuje liczbę replik lub wystąpień usług systemowych usługi Service Fabric, które mogą być uruchamiane w podstawowych węzłach klastra. Określa niezawodność tych usług, a tym samym klaster. Wartość jest obliczana przez system podczas tworzenia klastra i czasu uaktualniania.

Diagnostyka

W sekcji diagnosticsStore można skonfigurować parametry w celu włączenia diagnostyki i rozwiązywania problemów z awariami węzła lub klastra, jak pokazano w poniższym fragmencie kodu:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "FileShare",
    "IsEncrypted": "false",
    "connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
}

Metadane są opisem diagnostyki klastra i można je ustawić zgodnie z konfiguracją. Te zmienne pomagają w zbieraniu dzienników śledzenia etW i zrzutów awaryjnych, a także liczników wydajności. Aby uzyskać więcej informacji na temat dzienników śledzenia ETW, zobacz Śledzenie Tracelog i ETW. Wszystkie dzienniki, w tym zrzuty awaryjne i liczniki wydajności, można przekierować do folderu connectionString na maszynie. Możesz również użyć usługi AzureStorage do przechowywania diagnostyki. Zobacz następujący przykładowy fragment kodu:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "AzureStorage",
    "IsEncrypted": "false",
    "connectionstring": "xstore:DefaultEndpointsProtocol=https;AccountName=[AzureAccountName];AccountKey=[AzureAccountKey]"
}

Zabezpieczenia

Sekcja zabezpieczeń jest niezbędna dla bezpiecznego autonomicznego klastra usługi Service Fabric. Poniższy fragment kodu przedstawia część tej sekcji:

"security": {
    "metadata": "This cluster is secured using X509 certificates.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    . . .
}

Metadane są opisem bezpiecznego klastra i można je ustawić zgodnie z konfiguracją. Typ klastraCredentialType i ServerCredentialType określają typ zabezpieczeń implementowanego przez klaster i węzły. Można je ustawić na X509 dla zabezpieczeń opartych na certyfikatach lub Windows dla zabezpieczeń opartych na usłudze Active Directory. Pozostała część sekcji zabezpieczeń jest oparta na typie zabezpieczeń. Aby uzyskać informacje na temat sposobu wypełniania pozostałej części sekcji zabezpieczeń, zobacz Zabezpieczenia oparte na certyfikatach w autonomicznym klastrze lub zabezpieczeniach systemu Windows w klastrze autonomicznym.

Typy węzłów

W sekcji nodeTypes opisano typ węzłów, które ma klaster. Co najmniej jeden typ węzła musi być określony dla klastra, jak pokazano w poniższym fragmencie kodu:

"nodeTypes": [{
    "name": "NodeType0",
    "clientConnectionEndpointPort": "19000",
    "clusterConnectionEndpointPort": "19001",
    "leaseDriverEndpointPort": "19002",
    "serviceConnectionEndpointPort": "19003",
    "httpGatewayEndpointPort": "19080",
    "reverseProxyEndpointPort": "19081",
    "applicationPorts": {
        "startPort": "20575",
        "endPort": "20605"
    },
    "ephemeralPorts": {
        "startPort": "20606",
        "endPort": "20861"
    },
    "isPrimary": true
}]

Nazwa jest przyjazną nazwą dla tego określonego typu węzła. Aby utworzyć węzeł tego typu węzła, przypisz przyjazną nazwę do zmiennej nodeTypeRef dla tego węzła, jak wspomniano wcześniej. Dla każdego typu węzła zdefiniuj używane punkty końcowe połączenia. Możesz wybrać dowolny numer portu dla tych punktów końcowych połączenia, o ile nie powodują konfliktu z żadnymi innymi punktami końcowymi w tym klastrze. W klastrze wielowęzłowym istnieje co najmniej jeden węzeł podstawowy (czyli parametr isPrimary jest ustawiony na wartość true), w zależności od poziomu niezawodności. Aby dowiedzieć się więcej o typach węzłów podstawowych i innych niżprimary, zobacz Zagadnienia dotyczące planowania pojemności klastra usługi Service Fabric, aby uzyskać informacje na temat parametrów nodeTypes i reliabilityLevel.

Punkty końcowe używane do konfigurowania typów węzłów

  • clientConnectionEndpointPort to port używany przez klienta do nawiązywania połączenia z klastrem, gdy są używane interfejsy API klienta.
  • clusterConnectionEndpointPort to port, w którym węzły komunikują się ze sobą.
  • leaseDriverEndpointPort to port używany przez sterownik dzierżawy klastra, aby dowiedzieć się, czy węzły są nadal aktywne.
  • serviceConnectionEndpointPort to port używany przez aplikacje i usługi wdrożone w węźle w celu komunikowania się z klientem usługi Service Fabric w tym konkretnym węźle.
  • httpGatewayEndpointPort to port używany przez program Service Fabric Explorer do nawiązywania połączenia z klastrem.
  • ephemeralPorts przesłania porty dynamiczne używane przez system operacyjny. Usługa Service Fabric używa części tych portów jako portów aplikacji, a pozostałe są dostępne dla systemu operacyjnego. Mapuje również ten zakres na istniejący zakres obecny w systemie operacyjnym, więc dla wszystkich celów można użyć zakresów podanych w przykładowych plikach JSON. Upewnij się, że różnica między portami początkowymi i końcowymi wynosi co najmniej 255. Jeśli ta różnica jest zbyt niska, może wystąpić konflikt, ponieważ ten zakres jest udostępniany systemowi operacyjnej. Aby wyświetlić skonfigurowany zakres portów dynamicznych, uruchom polecenie netsh int ipv4 show dynamicport tcp.
  • applicationPorts to porty używane przez aplikacje usługi Service Fabric. Zakres portów aplikacji powinien być wystarczająco duży, aby uwzględnić wymaganie punktu końcowego aplikacji. Ten zakres powinien być wyłączny z zakresu portów dynamicznych na maszynie, czyli zakres efemerycznyPorts ustawiony w konfiguracji. Usługa Service Fabric używa tych portów zawsze, gdy wymagane są nowe porty i dba o otwarcie zapory dla tych portów.
  • reverseProxyEndpointPort to opcjonalny zwrotny punkt końcowy serwera proxy. Aby uzyskać więcej informacji, zobacz Zwrotny serwer proxy usługi Service Fabric.

Ustawienia dziennika

W sekcji fabricSettings można ustawić katalogi główne dla danych i dzienników usługi Service Fabric. Te katalogi można dostosować tylko podczas początkowego tworzenia klastra. Zobacz następujący przykładowy fragment kodu w tej sekcji:

"fabricSettings": [{
    "name": "Setup",
    "parameters": [{
        "name": "FabricDataRoot",
        "value": "C:\\ProgramData\\SF"
    }, {
        "name": "FabricLogRoot",
        "value": "C:\\ProgramData\\SF\\Log"
}]

Zalecamy używanie dysku innego niż system operacyjny jako FabricDataRoot i FabricLogRoot. Zapewnia większą niezawodność w unikaniu sytuacji, gdy system operacyjny przestaje odpowiadać. Jeśli dostosujesz tylko katalog główny danych, główny katalog dziennika zostanie umieszczony na jednym poziomie poniżej katalogu głównego danych.

Stanowe ustawienia usług Reliable Services

W sekcji KtlLogger można ustawić globalne ustawienia konfiguracji dla usług Reliable Services. Aby uzyskać więcej informacji na temat tych ustawień, zobacz Konfigurowanie stanowych usług Reliable Services. W poniższym przykładzie pokazano, jak zmienić udostępniony dziennik transakcji, który zostanie utworzony, aby przywrócić wszystkie niezawodne kolekcje dla usług stanowych:

"fabricSettings": [{
    "name": "KtlLogger",
    "parameters": [{
        "name": "SharedLogSizeInMB",
        "value": "4096"
    }]
}]

Funkcje dodatków

Aby skonfigurować funkcje dodatku, skonfiguruj parametr apiVersion jako 04-2017 lub nowszy i skonfiguruj dodatekFeatures, jak pokazano poniżej:

"apiVersion": "04-2017",
"properties": {
    "addOnFeatures": [
        "DnsService",
        "RepairManager"
    ]
}

Wszystkie dostępne funkcje dodatków można zobaczyć w dokumentacji interfejsu API REST usługi Service Fabric.

Obsługa kontenerów

Aby włączyć obsługę kontenerów zarówno dla kontenerów systemu Windows Server, jak i kontenerów funkcji Hyper-V dla klastrów autonomicznych, należy włączyć funkcję dodatku DnsService.

Następne kroki

Po utworzeniu kompletnego pliku ClusterConfig.json skonfigurowanego zgodnie z konfiguracją klastra autonomicznego można wdrożyć klaster. Wykonaj kroki opisane w temacie Tworzenie autonomicznego klastra usługi Service Fabric.

Jeśli masz wdrożony klaster autonomiczny, możesz również uaktualnić konfigurację klastra autonomicznego.

Dowiedz się, jak wizualizować klaster za pomocą narzędzia Service Fabric Explorer.