Развертывание сетевого контроллера с помощью Windows PowerShell
В этом разделе приведены инструкции по использованию Windows PowerShell для развертывания сетевого контроллера на одной или нескольких виртуальных машинах, работающих под управлением Windows Server 2019 или 2016.
Внимание
Не развертывайте роль сервера сетевого контроллера на физических узлах. Чтобы развернуть сетевой контроллер, необходимо установить роль сервера сетевого контроллера на виртуальной машине Hyper-V, установленной на узле Hyper-V. После установки сетевого контроллера на виртуальных машинах на трех разных узлах Hyper-V необходимо включить узлы Hyper-V для программно-определяемой сети (SDN), добавив узлы в сетевой контроллер с помощью команды New-NetworkControllerServer Windows PowerShell. Таким образом, вы включаете подсистему балансировки нагрузки программного обеспечения SDN. Дополнительные сведения см. в статье New-NetworkControllerServer.
Эта тема описана в следующих разделах.
Дополнительные команды Windows PowerShell для сетевого контроллера
Шаги после развертывания для развертываний, отличных от Kerberos
Установка роли сервера сетевого контроллера
Эту процедуру можно использовать для установки роли сервера сетевого контроллера на виртуальной машине.
Внимание
Не развертывайте роль сервера сетевого контроллера на физических узлах. Чтобы развернуть сетевой контроллер, необходимо установить роль сервера сетевого контроллера на виртуальной машине 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 является минимальным обязательным для выполнения этой процедуры.
Процедура:
На клиентском компьютере, если вы используете Kerberos в качестве механизма ClientAuthentication, войдите в систему с помощью учетной записи пользователя, являющейся членом ClientSecurityGroup.
Откройте 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
Чтобы получить учетные данные, добавленные в сетевой контроллер, введите следующую команду и нажмите клавишу ВВОД. Убедитесь, что вы добавляете значения для каждого параметра, подходящего для развертывания.
Get-NetworkControllerCredential -ConnectionUri https://networkcontroller -ResourceId cred1
Просмотрите выходные данные команды, которые должны быть похожи на приведенный ниже пример выходных данных.
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 с развертыванием сетевого контроллера, необходимо развернуть сертификаты.
Дополнительные сведения см. в разделе "Действия после развертывания" для сетевого контроллера.