Поделиться через


Развертывание сетевого контроллера с помощью Windows PowerShell

В этом разделе приведены инструкции по использованию Windows PowerShell для развертывания сетевого контроллера на одной или нескольких виртуальных машинах, работающих под управлением Windows Server 2019 или 2016.

Внимание

Не развертывайте роль сервера сетевого контроллера на физических узлах. Чтобы развернуть сетевой контроллер, необходимо установить роль сервера сетевого контроллера на виртуальной машине Hyper-V, установленной на узле Hyper-V. После установки сетевого контроллера на виртуальных машинах на трех разных узлах Hyper-V необходимо включить узлы Hyper-V для программно-определяемой сети (SDN), добавив узлы в сетевой контроллер с помощью команды New-NetworkControllerServer Windows PowerShell. Таким образом, вы включаете подсистему балансировки нагрузки программного обеспечения SDN. Дополнительные сведения см. в статье New-NetworkControllerServer.

Эта тема описана в следующих разделах.

Установка роли сервера сетевого контроллера

Эту процедуру можно использовать для установки роли сервера сетевого контроллера на виртуальной машине.

Внимание

Не развертывайте роль сервера сетевого контроллера на физических узлах. Чтобы развернуть сетевой контроллер, необходимо установить роль сервера сетевого контроллера на виртуальной машине Hyper-V, установленной на узле Hyper-V. После установки сетевого контроллера на виртуальных машинах на трех разных узлах Hyper-V необходимо включить узлы Hyper-V для программно-определяемой сети (SDN), добавив узлы в сетевой контроллер. Таким образом, вы включаете подсистему балансировки нагрузки программного обеспечения SDN.

Членство в администраторах или эквивалентных параметрах является минимальным обязательным для выполнения этой процедуры.

Примечание.

Если вы хотите использовать диспетчер сервера вместо Windows PowerShell для установки сетевого контроллера, см. статью "Установка роли сервера сетевого контроллера с помощью диспетчер сервера

Чтобы установить сетевой контроллер с помощью Windows PowerShell, введите следующие команды в командной строке Windows PowerShell и нажмите клавишу ВВОД.

Install-WindowsFeature -Name NetworkController -IncludeManagementTools

Для установки сетевого контроллера требуется перезагрузить компьютер. Для этого введите следующую команду и нажмите клавишу ВВОД.

Restart-Computer

Настройка кластера сетевого контроллера

Кластер сетевого контроллера обеспечивает высокий уровень доступности и масштабируемость для приложения сетевого контроллера, которое можно настроить после создания кластера и размещенного поверх кластера.

Примечание.

Процедуры в следующих разделах можно выполнить непосредственно на виртуальной машине, где установлен сетевой контроллер, или использовать средства удаленного администрирования сервера для Windows Server 2016 для выполнения процедур с удаленного компьютера под управлением Windows Server 2016 или Windows 10. Кроме того, членство в администраторах или эквивалентных параметрах является минимальным обязательным для выполнения этой процедуры. Если компьютер или виртуальная машина, на которой установлен сетевой контроллер, присоединен к домену, ваша учетная запись пользователя должна быть членом домена.

Кластер сетевого контроллера можно создать, создав объект узла, а затем настроив кластер.

Создание объекта узла

Необходимо создать объект узла для каждой виртуальной машины, являющейся членом кластера сетевого контроллера.

Чтобы создать объект узла, введите следующую команду в командной строке Windows PowerShell и нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.

New-NetworkControllerNodeObject -Name <string> -Server <String> -FaultDomain <string>-RestInterface <string> [-NodeCertificate <X509Certificate2>]

В следующей таблице приведены описания каждого параметра команды New-NetworkControllerNodeObject .

Параметр Описание:
Имя. Параметр Name указывает понятное имя сервера, который требуется добавить в кластер.
Сервер Параметр сервера задает имя узла, полное доменное имя (FQDN) или IP-адрес сервера, который требуется добавить в кластер. Для присоединенных к домену компьютеров требуется полное доменное имя.
FaultDomain Параметр FaultDomain указывает домен сбоя для сервера, добавляемого в кластер. Этот параметр определяет серверы, которые могут возникать сбоем одновременно с сервером, добавляемого в кластер. Эта ошибка может быть вызвана общими физическими зависимостями, такими как источники питания и сети. Домены сбоя обычно представляют иерархии, связанные с этими общими зависимостями, с большим числом серверов, которые, скорее всего, завершаются сбоем с более высокой точки в дереве домена сбоя. Во время выполнения сетевой контроллер рассматривает домены сбоя в кластере и пытается распространить службы сетевого контроллера, чтобы они были в отдельных доменах сбоя. Этот процесс обеспечивает сохранение доступности и состояния службы в случае отказа какого-либо домена. Домены сбоя указываются в иерархическом формате. Например: "Fd:/DC1/Rack1/Host1", где DC1 — имя центра обработки данных, Rack1 — это имя стойки, а host1 — это имя узла, на котором размещен узел.
RestInterface Параметр RestInterface указывает имя интерфейса на узле, в котором завершается взаимодействие с представлением состояния (REST). Этот интерфейс сетевого контроллера получает запросы API Northbound из уровня управления сети.
NodeCertificate Параметр NodeCertificate указывает сертификат, используемый сетевым контроллером для проверки подлинности компьютера. Сертификат требуется, если вы используете проверку подлинности на основе сертификатов для обмена данными в кластере; Сертификат также используется для шифрования трафика между службами сетевого контроллера. Имя субъекта сертификата должно совпадать с DNS-именем узла.

Настройка кластера

Чтобы настроить кластер, введите следующую команду в командной строке Windows PowerShell и нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.

Install-NetworkControllerCluster -Node <NetworkControllerNode[]> -ClusterAuthentication <ClusterAuthentication> [-ManagementSecurityGroup <string>][-DiagnosticLogLocation <string>][-LogLocationCredential <PSCredential>] [-CredentialEncryptionCertificate <X509Certificate2>][-Credential <PSCredential>][-CertificateThumbprint <String>] [-UseSSL][-ComputerName <string>][-LogSizeLimitInMBs<UInt32>] [-LogTimeLimitInDays<UInt32>]

В следующей таблице приведены описания каждого параметра команды Install-NetworkControllerCluster .

Параметр Описание
ClusterAuthentication Параметр ClusterAuthentication указывает тип проверки подлинности, используемый для защиты связи между узлами, а также используется для шифрования трафика между службами сетевого контроллера. Поддерживаемые значения: Kerberos, X509 и None. Проверка подлинности Kerberos использует учетные записи домена и может использоваться только в том случае, если узлы сетевого контроллера присоединены к домену. Если вы указываете проверку подлинности на основе X509, необходимо указать сертификат в объекте NetworkControllerNode. Кроме того, перед выполнением этой команды необходимо вручную подготовить сертификат.
ManagementSecurityGroup Параметр ManagementSecurityGroup указывает имя группы безопасности, содержащей пользователей, которым разрешено запускать командлеты управления с удаленного компьютера. Это применимо только в том случае, если ClusterAuthentication — Kerberos. Необходимо указать группу безопасности домена, а не группу безопасности на локальном компьютере.
Узел Параметр Node указывает список узлов сетевого контроллера, созданных с помощью команды New-NetworkControllerNodeObject .
DiagnosticLogLocation Параметр DiagnosticLogLocation указывает расположение общего ресурса, в котором журналы диагностики периодически отправляются. Если значение этого параметра не указано, журналы хранятся локально на каждом узле. Журналы хранятся локально в папке %systemdrive%\Windows\tracing\SDNDiagnostics. Журналы кластера хранятся локально в папке %systemdrive%\ProgramData\Microsoft\Service Fabric\log\Traces.
LogLocationCredential Параметр LogLocationCredential указывает учетные данные, необходимые для доступа к расположению общего ресурса, в котором хранятся журналы.
CredentialEncryptionCertificate Параметр CredentialEncryptionCertificate указывает сертификат, используемый сетевым контроллером для шифрования учетных данных, используемых для доступа к двоичным файлам сетевого контроллера и LogLocationCredential, если указано. Перед выполнением этой команды необходимо подготовить сертификат на всех узлах сетевого контроллера, а один и тот же сертификат должен быть зарегистрирован на всех узлах кластера. Использование этого параметра для защиты двоичных файлов и журналов сетевого контроллера рекомендуется в рабочих средах. Без этого параметра учетные данные хранятся в виде ясного текста и могут использоваться любым несанкционированным пользователем.
Подтверждение компетенции Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр Credential указывает учетную запись пользователя, которая имеет разрешение на выполнение этой команды на целевом компьютере.
CertificateThumbprint Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр CertificateThumbprint указывает сертификат цифрового открытого ключа (X509) учетной записи пользователя, которая имеет разрешение на выполнение этой команды на целевом компьютере.
UseSSL Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр UseSSL указывает протокол SSL, используемый для установления подключения к удаленному компьютеру. По умолчанию SSL не используется.
ComputerName Параметр ComputerName указывает узел сетевого контроллера, на котором выполняется эта команда. Если значение этого параметра не указано, локальный компьютер используется по умолчанию.
LogSizeLimitInMBs Этот параметр указывает максимальный размер журнала в МБ, который может хранить сетевой контроллер. Журналы хранятся в циклической форме. Если параметр DiagnosticLogLocation указан, значение по умолчанию этого параметра равно 40 ГБ. Если параметр DiagnosticLogLocation не указан, журналы хранятся на узлах сетевого контроллера, а значение по умолчанию этого параметра — 15 ГБ.
LogTimeLimitInDays Этот параметр задает ограничение длительности в днях, для которых хранятся журналы. Журналы хранятся в циклической форме. Значение по умолчанию этого параметра составляет 3 дня.

Настройка приложения сетевого контроллера

Чтобы настроить приложение сетевого контроллера, введите следующую команду в командной строке Windows PowerShell и нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.

Install-NetworkController -Node <NetworkControllerNode[]> -ClientAuthentication <ClientAuthentication>  [-ClientCertificateThumbprint <string[]>]  [-ClientSecurityGroup <string>] -ServerCertificate <X509Certificate2> [-RESTIPAddress <String>] [-RESTName <String>] [-Credential <PSCredential>][-CertificateThumbprint <String> ] [-UseSSL]

В следующей таблице приведены описания каждого параметра команды Install-NetworkController .

Параметр Описание
ClientAuthentication Параметр ClientAuthentication указывает тип проверки подлинности, используемый для защиты связи между REST и сетевым контроллером. Поддерживаемые значения: Kerberos, X509 и None. Проверка подлинности Kerberos использует учетные записи домена и может использоваться только в том случае, если узлы сетевого контроллера присоединены к домену. Если вы указываете проверку подлинности на основе X509, необходимо указать сертификат в объекте NetworkControllerNode. Кроме того, перед выполнением этой команды необходимо вручную подготовить сертификат.
Узел Параметр Node указывает список узлов сетевого контроллера, созданных с помощью команды New-NetworkControllerNodeObject .
ClientCertificateThumbprint Этот параметр требуется только при использовании проверки подлинности на основе сертификатов для клиентов сетевого контроллера. Параметр ClientCertificateThumbprint указывает отпечаток сертификата, зарегистрированного для клиентов на северном уровне.
ServerCertificate Параметр ServerCertificate указывает сертификат, используемый сетевым контроллером для подтверждения удостоверения клиентам. Сертификат сервера должен включать назначение проверки подлинности сервера в расширениях расширенного использования ключей и должен быть выдан сетевому контроллеру ЦС, доверенным клиентами.
RESTIPAddress Не нужно указывать значение для RESTIPAddress с одним узлом развертывания сетевого контроллера. Для развертываний с несколькими узлами параметр RESTIPAddress указывает IP-адрес конечной точки REST в нотации CIDR. Например, 192.168.1.10/24. Значение имени субъекта ServerCertificate должно разрешаться в значение параметра RESTIPAddress . Этот параметр необходимо указать для всех развертываний сетевого контроллера с несколькими узлами, когда все узлы находятся в одной подсети. Если узлы находятся в разных подсетях, необходимо использовать параметр RestName вместо использования RESTIPAddress.
RestName Для RestName не нужно указывать значение с одним узлом, развернутым сетевым контроллером. Единственное время, когда развертывания с несколькими узлами имеют узлы, которые находятся в разных подсетях, необходимо указать значение restName. Для развертываний с несколькими узлами параметр RestName указывает полное доменное имя для кластера сетевого контроллера.
ClientSecurityGroup Параметр ClientSecurityGroup указывает имя группы безопасности Active Directory, члены которой являются клиентами сетевого контроллера. Этот параметр требуется только в том случае, если для ClientAuthentication используется проверка подлинности Kerberos. Группа безопасности должна содержать учетные записи, из которых доступны интерфейсы REST API, и необходимо создать группу безопасности и добавить участников перед выполнением этой команды.
Подтверждение компетенции Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр Credential указывает учетную запись пользователя, которая имеет разрешение на выполнение этой команды на целевом компьютере.
CertificateThumbprint Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр CertificateThumbprint указывает сертификат цифрового открытого ключа (X509) учетной записи пользователя, которая имеет разрешение на выполнение этой команды на целевом компьютере.
UseSSL Этот параметр требуется только в том случае, если эта команда выполняется с удаленного компьютера. Параметр UseSSL указывает протокол SSL, используемый для установления подключения к удаленному компьютеру. По умолчанию SSL не используется.

После завершения настройки приложения сетевого контроллера развертывание сетевого контроллера завершится.

Проверка развертывания сетевого контроллера

Чтобы проверить развертывание сетевого контроллера, можно добавить учетные данные в сетевой контроллер, а затем получить учетные данные.

Если вы используете Kerberos в качестве механизма clientAuthentication, членство в созданной группе ClientSecurityGroup является минимальным обязательным для выполнения этой процедуры.

Процедура:

  1. На клиентском компьютере, если вы используете Kerberos в качестве механизма ClientAuthentication, войдите в систему с помощью учетной записи пользователя, являющейся членом ClientSecurityGroup.

  2. Откройте Windows PowerShell, введите следующие команды, чтобы добавить учетные данные в сетевой контроллер, а затем нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.

    $cred=New-Object Microsoft.Windows.Networkcontroller.credentialproperties
    $cred.type="usernamepassword"
    $cred.username="admin"
    $cred.value="abcd"
    
    New-NetworkControllerCredential -ConnectionUri https://networkcontroller -Properties $cred -ResourceId cred1
    
  3. Чтобы получить учетные данные, добавленные в сетевой контроллер, введите следующую команду и нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.

    Get-NetworkControllerCredential -ConnectionUri https://networkcontroller -ResourceId cred1
    
  4. Просмотрите выходные данные команды, которые должны быть похожи на приведенный ниже пример выходных данных.

    Tags                   :
    ResourceRef     : /credentials/cred1
    CreatedTime    : 1/1/0001 12:00:00 AM
    InstanceId        : e16ffe62-a701-4d31-915e-7234d4bc5a18
    Etag                  : W/"1ec59631-607f-4d3e-ac78-94b0822f3a9d"
    ResourceMetadata :
    ResourceId       : cred1
    Properties       : Microsoft.Windows.NetworkController.CredentialProperties
    

    Примечание.

    При выполнении команды Get-NetworkControllerCredential можно назначить выходные данные команды переменной с помощью оператора dot для перечисления свойств учетных данных. Например, $cred. Свойства.

Дополнительные команды Windows PowerShell для сетевого контроллера

После развертывания сетевого контроллера можно использовать команды Windows PowerShell для управления и изменения развертывания. Ниже приведены некоторые изменения, которые можно внести в развертывание.

  • Изменение параметров узла сетевого контроллера, кластера и приложения

  • Удаление кластера и приложения сетевого контроллера

  • Управление узлами кластера сетевого контроллера, включая добавление, удаление, включение и отключение узлов.

В следующей таблице приведен синтаксис команд Windows PowerShell, которые можно использовать для выполнения этих задач.

Задача Команда Синтаксис
Изменение параметров кластера сетевого контроллера Set-NetworkControllerCluster Set-NetworkControllerCluster [-ManagementSecurityGroup <string>][-Credential <PSCredential>] [-computerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Изменение параметров приложения сетевого контроллера Set-NetworkController Set-NetworkController [-ClientAuthentication <ClientAuthentication>] [-Credential <PSCredential>] [-ClientCertificateThumbprint <string[]>] [-ClientSecurityGroup <string>] [-ServerCertificate <X509Certificate2>] [-RestIPAddress <String>] [-ComputerName <String>][-CertificateThumbprint <String> ] [-UseSSL]
Изменение параметров узла сетевого контроллера Set-NetworkControllerNode Set-NetworkControllerNode -Name <string> > [-RestInterface <string>] [-NodeCertificate <X509Certificate2>] [-Credential <PSCredential>] [-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Изменение параметров диагностики сетевого контроллера Set-NetworkControllerDiagnostic Set-NetworkControllerDiagnostic [-LogScope <string>] [-DiagnosticLogLocation <string>] [-LogLocationCredential <PSCredential>] [-UseLocalLogLocation] >] [-LogLevel <loglevel>][-LogSizeLimitInMBs <uint32>] [-LogTimeLimitInDays <uint32>] [-Credential <PSCredential>] [-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Удаление приложения сетевого контроллера Uninstall-NetworkController Uninstall-NetworkController [-Credential <PSCredential>][-ComputerName <string>] [-CertificateThumbprint <String> ] [-UseSSL]
Удаление кластера сетевого контроллера Uninstall-NetworkControllerCluster Uninstall-NetworkControllerCluster [-Credential <PSCredential>][-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Добавление узла в кластер сетевого контроллера Add-NetworkControllerNode Add-NetworkControllerNode -FaultDomain <String> -Name <String> -RestInterface <String> -Server <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-Force] [-NodeCertificate <X509Certificate2> ] [-PassThru] [-UseSsl]
Отключение узла кластера сетевого контроллера Disable-NetworkControllerNode Disable-NetworkControllerNode -Name <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-PassThru] [-UseSsl]
Включение узла кластера сетевого контроллера Enable-NetworkControllerNode Enable-NetworkControllerNode -Name <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-PassThru] [-UseSsl]
Удаление узла сетевого контроллера из кластера Remove-NetworkControllerNode Remove-NetworkControllerNode [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-Force] [-Name <String> ] [-PassThru] [-UseSsl]

Примечание.

Команды Windows PowerShell для сетевого контроллера находятся в библиотеке TechNet в командлетах сетевого контроллера.

Пример скрипта конфигурации сетевого контроллера

В следующем примере сценария конфигурации показано, как создать кластер сетевого контроллера с несколькими узлами и установить приложение сетевого контроллера. Кроме того, переменная $cert выбирает сертификат из хранилища сертификатов локального компьютера, соответствующего строке имени субъекта "networkController.contoso.com".

$a = New-NetworkControllerNodeObject -Name Node1 -Server NCNode1.contoso.com -FaultDomain fd:/rack1/host1 -RestInterface Internal
$b = New-NetworkControllerNodeObject -Name Node2 -Server NCNode2.contoso.com -FaultDomain fd:/rack1/host2 -RestInterface Internal
$c = New-NetworkControllerNodeObject -Name Node3 -Server NCNode3.contoso.com -FaultDomain fd:/rack1/host3 -RestInterface Internal

$cert= get-item Cert:\LocalMachine\My | get-ChildItem | where {$_.Subject -imatch "networkController.contoso.com" }

Install-NetworkControllerCluster -Node @($a,$b,$c)  -ClusterAuthentication Kerberos -DiagnosticLogLocation \\share\Diagnostics - ManagementSecurityGroup Contoso\NCManagementAdmins -CredentialEncryptionCertificate $cert
Install-NetworkController -Node @($a,$b,$c) -ClientAuthentication Kerberos -ClientSecurityGroup Contoso\NCRESTClients -ServerCertificate $cert -RestIpAddress 10.0.0.1/24

Шаги после развертывания для развертываний, отличных от Kerberos

Если вы не используете Kerberos с развертыванием сетевого контроллера, необходимо развернуть сертификаты.

Дополнительные сведения см. в разделе "Действия после развертывания" для сетевого контроллера.