Параметры прокси-сервера в 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 addresses excludes 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-AksHciConfig
Install-AksHci
.