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


Параметры прокси-сервера в AKS, включенные Azure Arc

Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server

В этой статье описывается настройка параметров прокси-сервера для AKS, включенных Azure Arc. Если для подключения к Интернету требуется использовать прокси-сервер, в этой статье описано, как настроить поддержку прокси-сервера в AKS с помощью модуля PowerShell AksHci . Действия зависят от того, требуется ли проверка подлинности прокси-сервера.

Примечание

Если вы хотите использовать Kubernetes и службы Azure с Azure Arc, убедитесь, что вы также добавили URL-адреса, показанные в разделе Подключение существующего кластера Kubernetes к Azure Arc , в список разрешений.

После настройки развертывания с помощью следующих параметров можно установить узел AKS в Azure Stack HCI и создать кластеры Kubernetes с помощью PowerShell.

Подготовка к работе

Убедитесь, что выполнены все предварительные требования, приведенные в требованиях к системе.

Сведения о конфигурации прокси-сервера

Конфигурация прокси-сервера для развертывания AKS включает следующие параметры.

  • URL-адрес и порт HTTP, например http://proxy.corp.contoso.com:8080.
  • URL-адрес и порт HTTPS, например https://proxy.corp.contoso.com:8443.
  • (Необязательно) Допустимые учетные данные для проверки подлинности на прокси-сервере.
  • (Необязательно) Допустимая цепочка сертификатов, если прокси-сервер настроен для перехвата трафика SSL. Эта цепочка сертификатов будет импортирована во все узлы уровня управления AKS и рабочие узлы, а также в кластер управления для установки доверенного подключения к прокси-серверу.

Список исключений для исключения частных подсетей из отправки на прокси-сервер

В следующей таблице содержится список адресов, которые необходимо исключить с помощью -noProxy параметра в New-AksHciProxySetting.

IP-адрес Причина исключения
localhost, 127.0.0.1 Трафик localhost
.svc Внутренний трафик службы Kubernetes, где .svc представляет имя с подстановочными знаками. Это похоже на , *.svcно не используется в этой схеме.
10.0.0.0/8 Адресное пространство частной сети.
172.16.0.0/12 Адресное пространство частной сети — CIDR службы Kubernetes.
192.168.0.0/16 Адресное пространство частной сети — CIDR pod Kubernetes.
.contoso.com`` | You might want to exempt your enterprise namespace (.contoso.com) from being directed through the proxy. To exclude all addresses in a domain, you must add the domain to the noProxy.contoso.comlist. Use a leading period rather than a wildcard (\*) character. In the example, the addressesexcludes addresses prefix1.contoso.com, prefix2.contoso.com и т. д.

По умолчанию для объекта noProxy установлено значение localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. Хотя эти значения по умолчанию работают для многих сетей, может потребоваться добавить дополнительные диапазоны подсетей и (или) имена в список исключений. Например, может потребоваться исключить корпоративное пространство имен (contoso.com) из перенаправления через прокси-сервер. Это можно сделать, указав значения в списке noProxy .

Настройка прокси-сервера для кластеров Azure Stack HCI и Windows Server с параметрами прокси-сервера на уровне компьютера

Если у вас уже есть параметры прокси-сервера на уровне компьютера в кластере Azure Stack HCI или Windows Server, они могут переопределить все параметры прокси-сервера AKS и привести к сбою во время установки.

Чтобы определить, есть ли у вас параметры прокси-сервера на уровне компьютера, выполните следующий сценарий на каждом из узлов физического кластера:

$http_proxy = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
$https_proxy = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
$no_proxy = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

if ($http_proxy -or $https_proxy) {
    if (-not $no_proxy) {
        Write-Host "Problem Detected! A machine-wide proxy server is configured, but no proxy exclusions are configured"
    }
}

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

Запустите следующий сценарий PowerShell и замените $no_proxy строку параметра подходящей NO_PROXY строкой исключения для вашей среды. Сведения о том, как правильно настроить список для вашей noProxy среды, см. в статье Список исключений для исключения частных подсетей из отправки на прокси-сервер.

$no_proxy = "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

Примечание

Рекомендуется использовать одинаковые параметры прокси-сервера на всех узлах в отказоустойчивом кластере. Наличие разных параметров прокси-сервера на разных физических узлах в отказоустойчивом кластере может привести к непредвиденным результатам или проблемам с установкой. Кроме того, IP-адрес с подстановочным знаком (*), например 172.*, является недопустимым. IP-адрес должен быть в правильной нотации CIDR (172.0.0.0/8).

Установка модулей PowerShell Для AksHci

Настройте параметры системного прокси-сервера на каждом из физических узлов в кластере и убедитесь, что все узлы имеют доступ к URL-адресам и портам, описанным в разделе Требования к системе.

Если вы используете удаленный PowerShell, необходимо использовать CredSSP.

Закройте все открытые окна PowerShell перед выполнением следующей команды:

Install-Module -Name AksHci -Repository PSGallery

Если среда использует прокси-сервер для доступа к Интернету, может потребоваться добавить параметры прокси-сервера в команду Install-Module перед установкой AKS. Дополнительные сведения см. в документации по Install-Module и следуйте указаниям в документации по Azure Stack HCI , чтобы настроить параметры прокси-сервера на узлах физического кластера.

При скачивании модуля AksHci PowerShell мы также скачиваем модули Az PowerShell, необходимые для регистрации узла AKS в Azure для выставления счетов.

Настройка узла AKS для прокси-сервера с обычной проверкой подлинности

Если прокси-сервер требует проверки подлинности, откройте PowerShell от имени администратора и выполните следующую команду, чтобы получить учетные данные и задать сведения о конфигурации:

$proxyCred = Get-Credential
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

Настройка узла AKS для прокси-сервера без проверки подлинности

Если прокси-сервер не требует проверки подлинности, выполните следующую команду:

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com

Настройка узла AKS для прокси-сервера с доверенным сертификатом

Если прокси-сервер требует, чтобы прокси-клиенты доверяли сертификату, укажите файл сертификата при запуске Set-AksHciConfig. Формат файла сертификата — X.509 в кодировке Base-64. Это позволяет создавать сертификат и доверять ему во всем стеке.

Важно!

Если прокси-сервер требует, чтобы сертификат был доверенным для физических узлов Azure Stack HCI, перед продолжением импортируйте цепочку сертификатов в соответствующее хранилище сертификатов на каждом узле Azure Stack HCI. Выполните процедуры развертывания, чтобы зарегистрировать узлы Azure Stack HCI с необходимыми сертификатами для проверки подлинности прокси-сервера.

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

Примечание

Сертификаты прокси-сервера должны быть предоставлены в формате или строке файла обмена личной информацией (PFX) и содержать цепочку корневых центров, чтобы использовать сертификат для проверки подлинности или настройки ssl-туннеля.

Дальнейшие действия

Теперь можно продолжить установку AKS в кластере Azure Stack HCI или Windows Server, выполнив команду Set-AksHciConfigInstall-AksHci.