Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет вам развернуть кластер AKS с использованием приватных ссылок. Если вы хотите создать кластер AKS без обязательной необходимости в приватной связи или туннеле, см. Создание кластера службы Azure Kubernetes (AKS) с интеграцией API-сервера с VNet.
Обзор частных кластеров в AKS
В частном кластере уровень управления или сервер API имеют внутренние IP-адреса, определенные в документе RFC1918 — выделение адресов для частных сетей интернета. Используя частный кластер, вы можете гарантировать, что сетевой трафик между сервером API и пулами узлов остается только в частной сети.
Azure-уровень управления или сервер API находится в Azure-группе ресурсов, управляемой AKS, а кластер или пул узлов находится в вашей группе ресурсов. Сервер и пул узлов могут взаимодействовать друг с другом через службу Приватного канала Azure в виртуальной сети сервера API и частную конечную точку, доступную в подсети кластера AKS.
При создании частного кластера AKS AKS по умолчанию создает как частные, так и общедоступные полные доменные имена (FQDN) с соответствующими зонами DNS. Подробные параметры конфигурации DNS см. в разделе "Настройка частной зоны DNS", частной подзоны DNS или пользовательского поддомена.
Доступность по регионам
Частные кластеры доступны в общедоступных регионах, Azure Government и Microsoft Azure, управляемом регионами 21Vianet, где поддерживается AKS.
Внимание
Все функции Microsoft Defender для облака официально будут сняты в Azure в китайском регионе 18 августа 2026 года. Из-за предстоящего выхода на пенсию клиенты Azure в Китае больше не смогут подключить новые подписки к службе. Новая подписка — это любая подписка, которая еще не была подключена к облачной службе Microsoft Defender до 18 августа 2025 года, дата объявления о выходе на пенсию. Дополнительные сведения об устаревании см. в объявлении “Microsoft Defender for Cloud Deprecation в Microsoft Azure, управляемой 21Vianet”.
Клиенты должны работать с представителями своих аккаунтов Microsoft Azure, управляемой компанией 21Vianet, чтобы оценить влияние этого прекращения на их собственные операции.
Предварительные требования для частных кластеров AKS
- Azure CLI версии 2.28.0 или более поздней. Запустите
az --version, чтобы определить версию и запуститеaz upgradeдля обновления версии. Если вам нужно установить или обновить, см. статью "Установка Azure CLI". - При использовании Azure Resource Manager (ARM) или REST API Azure версия API AKS должна быть 2021-05-01 или выше.
- Чтобы использовать пользовательский DNS-сервер, добавьте общедоступный IP-адрес Azure 168.63.129.16 в качестве вышестоящего DNS-сервера в пользовательском DNS-сервере и обязательно добавьте этот общедоступный IP-адрес в качестве первого DNS-сервера. Дополнительные сведения об IP-адресе Azure см. в статье "Что такое IP-адрес 168.63.129.16?"
- Зона DNS кластера должна быть той, которую вы перенаправляете на 168.63.129.16. Дополнительные сведения о именах зон можно найти в конфигурации зоны DNS служб Azure.
- Существующие кластеры AKS, включенные с интеграцией виртуальной сети API Server, могут иметь режим частного кластера. Дополнительные сведения см. в разделе "Включение или отключение режима частного кластера" в существующем кластере с интеграцией виртуальной сети API Server.
Внимание
Начиная с 30 ноября 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает или предоставляет обновления безопасности для Azure Linux 2.0. Образ узла Linux 2.0 Azure заморожен в выпуске 202512.06.0. Начиная с 31 марта 2026 г. образы узлов будут удалены, и вы не сможете масштабировать пулы узлов. Выполните миграцию в поддерживаемую версию Linux Azure, обновив пулы узлов до поддерживаемой версии Kubernetes или переключив ее на osSku AzureLinux3. Дополнительные сведения см. в вопросе о прекращении поддержки на GitHub и объявлении об устаревании обновлений Azure. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.
Ограничения и рекомендации для частных кластеров AKS
- Не удается применить диапазоны разрешенных IP-адресов к конечной точке частного сервера API. Они применяются только к общедоступному серверу API.
- Ограничения службы Приватного канала Azure применяются к частным кластерам.
- Нет поддержки агентов Azure DevOps, предоставляемых Microsoft, с частными кластерами. Рассмотрите возможность использования самостоятельно размещённых агентов.
- Если необходимо включить реестр контейнеров Azure в частном кластере AKS, настройте приватный канал для реестра контейнеров в виртуальной сети кластера или настройте пиринг между виртуальной сетью реестра контейнеров и виртуальной сетью частного кластера.
- Удаление или изменение частной конечной точки в подсети клиента приводит к остановке работы кластера.
- Поддержка для сервиса Azure Private Link осуществляется только на Azure Load Balancer уровня "Стандартный". Azure Load Balancer "Базовый" не поддерживается.
Концентратор и периферийный сервер с пользовательским DNS для частных кластеров AKS
Архитектуры концентраторов и периферийных узлов часто используются для развертывания сетей в Azure. Во многих из этих развертываний параметры DNS в периферийных виртуальных сетях настроены для обращения к центральному серверу пересылки DNS-запросов, чтобы обеспечить разрешение DNS, как локальных, так и базированных на Azure.
При развертывании частных кластеров AKS в центральных и периферийных архитектурах с помощью пользовательского DNS следует учитывать следующие рекомендации.
При создании частного кластера частная конечная точка (1) и частная зона DNS (2) создаются в группе ресурсов, управляемой кластером, по умолчанию. Кластер использует
Aзапись в частной зоне для разрешения IP-адреса частной конечной точки и обеспечения связи с сервером API.Частная зона DNS связана только с виртуальной сетью, к которой подключены узлы кластера (3), что означает, что частная конечная точка может быть разрешена только узлами в этой связанной виртуальной сети. В сценариях, когда настраиваемый DNS не сконфигурирован в виртуальной сети (по умолчанию), система работает без затруднений, поскольку узлы обращаются к 168.63.129.16, который разрешает записи в частной зоне DNS благодаря соединению.
При сохранении поведения частной зоны DNS по умолчанию AKS пытается связать зону непосредственно с периферийной виртуальной сетью, в которую размещается кластер, даже если зона уже связана с центральной виртуальной сетью.
В периферийных виртуальных сетях, использующих пользовательские DNS-серверы, это действие может завершиться ошибкой, если управляемому удостоверению кластера не хватает участника сети в периферийной виртуальной сети.
Чтобы предотвратить сбой, выберите одну из следующих поддерживаемых конфигураций:
-
Настраиваемая частная зона DNS: укажите предварительно созданную частную зону и задайте
privateDNSZone/--private-dns-zoneего идентификатор ресурса. Свяжите эту зону с соответствующей виртуальной сетью (например, виртуальной сетью концентратора) и установитеpublicDNSнаfalse/ используйте--disable-public-fqdn. -
Только общедоступный DNS: отключите создание частной зоны, установив
privateDNSZone/--private-dns-zoneнаnoneи оставьтеpublicDNSв значении по умолчанию (true) / не используйте--disable-public-fqdn.
-
Настраиваемая частная зона DNS: укажите предварительно созданную частную зону и задайте
Если вы используете собственную таблицу маршрутов (BYO) с kubenet и собственный BYO DNS с частными кластерами, создание кластера терпит неудачу. Чтобы создание кластера было успешным, нужно связать
RouteTableгруппу ресурсов узла с подсетью после того, как первоначальная попытка создания кластера не удалась.
При использовании пользовательского DNS с частными кластерами AKS следует учитывать следующие ограничения:
- Параметр
privateDNSZone/--private-dns-zonenonepublicDNS: false/--disable-public-fqdnв то же время не поддерживается. - Условное перенаправление не поддерживает поддомены.
Создание частного кластера AKS с базовой сетью по умолчанию
Создайте группу ресурсов с помощью
az group createкоманды. Вы также можете использовать существующую группу ресурсов для кластера AKS.az group create \ --name <private-cluster-resource-group> \ --location <location>Создайте частный кластер с базовой сетью по умолчанию с помощью
az aks createкоманды с флагом--enable-private-cluster.Ключевые параметры в этой команде:
-
--enable-private-cluster: включает режим частного кластера.
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys-
Создание частного кластера AKS с расширенной сетью
Создайте группу ресурсов с помощью
az group createкоманды. Вы также можете использовать существующую группу ресурсов для кластера AKS.az group create \ --name <private-cluster-resource-group> \ --location <location>Создайте частный кластер с расширенными сетями
az aks createс помощью команды.Ключевые параметры в этой команде:
-
--enable-private-cluster: включает режим частного кластера. -
--network-plugin azure: указывает сетевой плагин Azure CNI. -
--vnet-subnet-id: идентификатор ресурса существующей подсети в виртуальной сети. -
--dns-service-ip: доступный IP-адрес в диапазоне адресов службы Kubernetes, используемый для службы DNS кластера. -
--service-cidr: диапазон IP-адресов нотации CIDR, из которого следует назначать IP-адреса кластера служб.
az aks create \ --resource-group <private-cluster-resource-group> \ --name <private-cluster-name> \ --load-balancer-sku standard \ --enable-private-cluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 --generate-ssh-keys-
Использование пользовательских доменов с частными кластерами AKS
Если вы хотите настроить пользовательские домены, которые могут быть разрешены только внутри системы, см. раздел "Использование пользовательских доменов".
Деактивация публичного полного доменного имени на частном кластере AKS
Выключить общедоступное полное доменное имя на новом кластере
Отключите общедоступное полное доменное имя при создании частного кластера AKS, используя команду
az aks createс флагом--disable-public-fqdn.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Отключить общедоступное полное доменное имя (FQDN) в существующем кластере
Отключите публичное полное доменное имя в существующем кластере AKS с помощью команды
az aks updateи флага--disable-public-fqdn.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Настройка частной зоны DNS, частной подзоны DNS или настраиваемого поддомена для частного кластера AKS
Вы можете настроить частные параметры DNS для частного кластера AKS с помощью Azure CLI (с --private-dns-zone параметром) или шаблона Azure Resource Manager (ARM) (со свойством privateDNSZone ). В следующей таблице описаны параметры, доступные для --private-dns-zone параметра или privateDNSZone свойства:
| Setting | Description |
|---|---|
system |
Значение по умолчанию при настройке частной зоны DNS. Если не указано --private-dns-zone / privateDNSZone, AKS создает частную зону DNS в группе ресурсов узла. |
none |
Если задано значение --private-dns-zone / privateDNSZonenone, AKS не создает частную зону DNS. |
<custom-private-dns-zone-resource-id> |
Чтобы использовать этот параметр, необходимо создать частную зону DNS в следующем формате для глобального облака Azure. privatelink.<region>.azmk8s.io<subzone>.privatelink.<region>.azmk8s.io Для дальнейшего использования вам потребуется идентификатор ресурса частной зоны DNS. Вам также требуется назначенная пользователем идентичность или главный компонент службы с ролью участника частной зоны DNS и ролью участника сети. Для кластеров, использующих интеграцию виртуальной сети сервера API, частная зона DNS поддерживает формат именования private.<region>.azmk8s.io или <subzone>.private.<region>.azmk8s.io. Вы не можете изменить или удалить этот ресурс после создания кластера, так как это может привести к проблемам с производительностью и сбоям обновления кластера. Можно использовать --fqdn-subdomain <subdomain> вместе с <custom-private-dns-zone-resource-id> только для предоставления возможностей поддомена privatelink.<region>.azmk8s.io. Если вы указываете подзону, для имени задано 32 символьное <subzone> ограничение. |
При настройке частного DNS для частного кластера AKS следует учитывать следующие рекомендации.
- Если частная зона DNS находится в подписке, отличной от кластера AKS, необходимо зарегистрировать
Microsoft.ContainerServicesпоставщика Azure в обеих подписках. - Если ваш кластер AKS настроен с субъектом службы Active Directory, AKS не поддерживает использование управляемого удостоверения, системно назначаемого, с настраиваемой частной зоной DNS. Кластер должен использовать аутентификацию с помощью управляемого удостоверения, назначаемого пользователем.
Создание частного кластера AKS с частной зоной DNS
Создайте частный кластер AKS с частной зоной DNS с помощью
az aks createкоманды.Ключевые параметры в этой команде:
-
--enable-private-cluster: включает режим частного кластера. -
--private-dns-zone [system|none]: настраивает частную зону DNS для кластера. Значение по умолчанию —system. -
--assign-identity <resource-id>: идентификатор ресурса управляемого удостоверения, назначаемого пользователем, с ролью участника частной зоны DNS и участника сети .
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [system|none] \ --generate-ssh-keys-
Создание частного кластера AKS с настраиваемой частной зоной DNS или частной подзоной DNS
Создайте частный кластер AKS с настраиваемой частной зоной DNS или подзоной
az aks createс помощью команды.Ключевые параметры в этой команде:
-
--enable-private-cluster: включает режим частного кластера. -
--private-dns-zone <custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>: идентификатор ресурса предварительно созданной частной зоны DNS или подзоны в следующем формате для глобального облака Azure:privatelink.<region>.azmk8s.ioили<subzone>.privatelink.<region>.azmk8s.io. -
--assign-identity <resource-id>: идентификатор ресурса управляемого удостоверения, назначаемого пользователем, с ролью участника частной зоны DNS и участника сети .
# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \ --generate-ssh-keys-
Создание частного кластера AKS с настраиваемой частной зоной DNS и пользовательским поддоменом
Создайте частный кластер AKS с настраиваемой частной зоной DNS и поддоменом
az aks createс помощью команды.Ключевые параметры в этой команде:
-
--enable-private-cluster: включает режим частного кластера. -
--private-dns-zone <custom-private-dns-zone-resource-id>: идентификатор ресурса предварительно созданной частной зоны DNS в следующем формате для глобального облака Azure:privatelink.<region>.azmk8s.io -
--fqdn-subdomain <subdomain>: поддомен, используемый для полного доменного имени кластера в настраиваемой частной зоне DNS. -
--assign-identity <resource-id>: идентификатор ресурса управляемого удостоверения, назначаемого пользователем, с ролью участника частной зоны DNS и участника сети .
# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <custom-private-dns-zone-resource-id> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys-
Обновление существующего частного кластера AKS из частной зоны DNS до общедоступной
Вы можете обновить только от byo (принести свой собственный) или system в none. Никакое другое сочетание значений обновления не поддерживается.
Предупреждение
При обновлении частного кластера с byo или system на none, узлы агента изменяются на использование общедоступного полного доменного имени. В кластере AKS, использующего масштабируемые наборы виртуальных машин Azure, обновление образа узла выполняется для обновления узлов с помощью общедоступного полного доменного имени.
Обновите частный кластер от
byoилиsystemдоnone, используя командуaz aks updateс параметром--private-dns-zone, установленным наnone.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Настройка kubectl для подключения к частному кластеру AKS
Чтобы управлять кластером Kubernetes, используйте клиент командной строки Kubernetes, kubectl. Если вы используете Azure Cloud Shell, kubectl уже установлен. Чтобы установить kubectl локально, используйте az aks install-cli команду.
Настройте
kubectlдля подключения к вашему кластеру Kubernetes с помощью командыaz aks get-credentials. Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>Проверьте подключение к кластеру
kubectl getс помощью команды. Эта команда возвращает список узлов кластера.kubectl get nodesКоманда возвращает выходные данные, аналогичные следующему примеру выходных данных:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11