Udostępnij za pośrednictwem


Ustawienia konfiguracji autonomicznego klastra systemu 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 dołączone są również przykłady ClusterConfig.json. Przykłady o nazwie "DevCluster" tworzą klaster z 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 deweloperskich lub testowych. Nie jest obsługiwany jako klaster produkcyjny. Przykłady, które mają nazwę "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 jest oparta na poziomie 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.

  • ClusterConfig.Unsecure.DevCluster.json i ClusterConfig.Unsecure.MultiMachine.json pokazują, jak utworzyć 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 pokazują, jak utworzyć klastry testowe lub produkcyjne zabezpieczone przy użyciu zabezpieczeń opartych na certyfikatach X509.

Teraz przeanalizujemy różne sekcje 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 podać dowolną przyjazną nazwę klastrowi usługi Service Fabric, 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 właściwość apiVersion ustawioną 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 węźle.
Ipaddress Znajdź adres IP węzła, otwierając okno polecenia i wpisując ipconfig. Zanotuj adres IPV4 i przypisz go do zmiennej iPAddress.
nodeTypeRef Każdy węzeł może być przypisany do innego typu węzła. Typy węzłów są definiowane 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 na potrzeby uaktualnień usługi Service Fabric w tym samym czasie. Można wybrać węzły do przypisania do jakich domen uaktualnienia, ponieważ nie są one ograniczone przez żadne wymagania fizyczne.

Właściwości klastra

Sekcja właściwości w pliku 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 węzłach głównych 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ą. KlasterCredentialType i ServerCredentialType określają typ zabezpieczeń implementowanego klastra i węzłów. Można je ustawić na X509 dla zabezpieczeń opartych na certyfikatach lub systemu Windows na potrzeby zabezpieczeń opartych na usłudze Active Directory. Pozostała część sekcji zabezpieczeń jest oparta na typie zabezpieczeń. Aby uzyskać informacje na temat 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. Dla klastra należy określić co najmniej jeden typ węzła, 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ą tego typu określonego 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 wartość isPrimary jest ustawiona na wartość true), w zależności od niezawodnościLevel. 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 węzłó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 Service Fabric Explorer do nawiązywania połączenia z klastrem.
  • efemerycznaPorts zastępuje 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żesz napotkać konflikty, ponieważ ten zakres jest współużytkowany z systemem operacyjnym. 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ć wymagania dotyczące punktu końcowego aplikacji. Ten zakres powinien być wyłączny od zakresu portów dynamicznych na maszynie, czyli zakres efemerycznychPorts ustawiony w konfiguracji. Usługa Service Fabric używa tych portów za każdym razem, gdy są wymagane nowe porty i dba o otwarcie zapory dla tych portów.
  • reverseProxyEndpointPort jest opcjonalnym zwrotnym punktem końcowym serwera proxy. Aby uzyskać więcej informacji, zobacz Odwrotny 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 przypadku unikania sytuacji, w których system operacyjny przestaje odpowiadać. Jeśli dostosujesz tylko główny katalog danych, katalog główny dziennika zostanie umieszczony na jednym poziomie poniżej katalogu głównego danych.

Ustawienia stanowych 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 dodatku

Aby skonfigurować funkcje dodatku, skonfiguruj parametr apiVersion jako 04-2017 lub nowszy, a następnie skonfiguruj dodatek AddonFeatures, jak pokazano poniżej:

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

Wszystkie dostępne funkcje dodatku 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 skonfigurowaniu kompletnego pliku ClusterConfig.json 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 autonomiczny klaster, możesz również uaktualnić konfigurację klastra autonomicznego.

Dowiedz się, jak wizualizować klaster przy użyciu Service Fabric Explorer.