Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кластер службы Azure Kubernetes (AKS), настроенный с помощью интеграции виртуальных сетей API, проектирует конечную точку сервера API непосредственно в делегированную подсеть в виртуальной сети, в которой развертывается AKS. Интеграция виртуальной сети СЕРВЕРА API обеспечивает сетевое взаимодействие между сервером API и узлами кластера, не требуя приватного канала или туннеля. Сервер API доступен за виртуальным IP-адресом внутреннего балансировщика нагрузки в делегированной подсети, которую узлы настроены использовать. С помощью интеграции виртуальной сети сервера API можно гарантировать, что сетевой трафик между сервером API и пулами узлов остается только в частной сети.
Подключение сервера API
Уровень управления или сервер API находится в управляемой AKS подписке Azure. Кластер или пул узлов находится в подписке Azure. Сервер и виртуальные машины, составляющие узлы кластера, могут взаимодействовать друг с другом через VIP-адрес сервера API и IP-адреса подов, которые проецируются в делегированную подсеть.
Интеграция API сервера с виртуальной сетью поддерживается для публичных или частных кластеров. После подготовки кластера можно добавить или удалить общедоступный доступ. В отличие от кластеров, не интегрированных с виртуальной сетью (VNet), узлы агента всегда взаимодействуют напрямую с частным IP-адресом внутреннего балансировщика нагрузки (ILB) сервера API без использования DNS. Весь трафик от узлов к API-серверу проходит по частной сети, и для подключения API-сервера к узлам туннель не требуется. Клиенты вне кластера, нуждающиеся в обмене данными с сервером API, могут сделать это обычно, если доступ к общедоступной сети включен. Если доступ к общедоступной сети отключен, следует следовать той же методике настройки частного DNS, что и стандартные частные кластеры.
Предпосылки
- Необходимо установить Azure CLI версии 2.73.0 или более поздней версии. Вы можете проверить версию с помощью
az --versionкоманды.
Ограничения
- Интеграция VNet API-сервера не поддерживает зашифрованные виртуальные сети.
Доступность
- Интеграция VNet API-сервера доступна во всех общедоступных облачных регионах, кроме eastus2 и qatarcentral. Мы постоянно работаем над включением этой функции в этих регионах и обновим эту страницу, когда эти регионы становятся доступными.
Создание кластера AKS с интеграцией API-сервера в управляемую виртуальную сеть
Кластеры AKS можно настроить с интеграцией API Server VNet в управляемую виртуальную сеть или в режиме использования вашей собственной виртуальной сети. Их можно создать как общедоступные кластеры (с доступом к серверу API, доступным через общедоступный IP-адрес) или частные кластеры (где сервер API доступен только через подключение к частной виртуальной сети). Вы также можете переключаться между общедоступным и частным состоянием без повторного развертывания кластера.
Создайте группу ресурсов
Создайте группу ресурсов с помощью команды
az group create.az group create --location westus2 --name <resource-group>
Развертывание общедоступного кластера
Разверните общедоступный кластер AKS с интеграцией виртуальной сети API Server в управляемую виртуальную сеть, используя команду
az aks createс флагом--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Развертывание частного кластера
Разверните кластер AKS частный с интеграцией виртуальной сети сервера API для управляемой виртуальной сети, используя команду
az aks createс флагами--enable-api-server-vnet-integrationи--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Создание частного кластера AKS с интеграцией API Server в виртуальную сеть с использованием собственной виртуальной сети
При использовании собственной виртуальной сети необходимо создать и делегировать подсеть Microsoft.ContainerService/managedClusters сервера API, которая предоставляет службе AKS разрешения на внедрение подов сервера API и внутреннего балансировщика нагрузки в эту подсеть. Вы не можете использовать подсеть для других рабочих нагрузок, но ее можно использовать для нескольких кластеров AKS, расположенных в одной виртуальной сети. Минимальный поддерживаемый размер подсети сервера API — /28.
Идентификатор кластера должен иметь разрешения на подсеть сервера API и подсеть узла. Отсутствие разрешений в подсети сервера API может привести к сбою в процессе предоставления ресурсов.
Предупреждение
Кластер AKS резервирует по крайней мере 9 IP-адресов в адресном пространстве подсети. Законченные IP-адреса могут помешать масштабированию сервера API и вызвать его сбой.
Создайте группу ресурсов
- Создайте группу ресурсов с помощью команды
az group create.
az group create --location <location> --name <resource-group>
Создание виртуальной сети
Создайте виртуальную сеть с помощью
az network vnet createкоманды.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16Создайте подсеть сервера API с помощью
az network vnet subnet createкоманды.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28Создайте подсеть кластера с помощью
az network vnet subnet createкоманды.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Создайте управляемое удостоверение и предоставьте ему разрешения на виртуальную сеть.
Создайте управляемое удостоверение с помощью
az identity createкоманды.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>Назначьте роль Участника сети для подсети сервера API с помощью команды
az role assignment create.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>Назначьте роль участника сети для подсети кластера с помощью команды
az role assignment create.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Развертывание общедоступного кластера
Разверните общедоступный кластер AKS с интеграцией виртуальной сети API Server, используя команду
az aks createс флагом--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Развертывание частного кластера
Разверните частный кластер AKS с интеграцией виртуальной сети API Server с помощью команды
az aks createс флагами--enable-api-server-vnet-integrationи--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Преобразование существующего кластера AKS для интеграции сервера API с виртуальной сетью.
Предупреждение
Интеграция виртуальных сетей сервера API — это односторонняя, чувствительная к емкости функция.
Требуется перезапуск вручную.
После включения интеграции VNet сервера API с помощьюaz aks update --enable-apiserver-vnet-integration, кластер необходимо немедленно перезапустить, чтобы изменения вступили в силу. Этот перезапуск не является автоматическим. Задержка перезапуска повышает риск недоступности емкости, что может предотвратить запуск сервера API.Емкость проверяется, но не зарезервирована.
AKS проверяет региональную емкость при включении функции в существующем кластере, но эта проверка не резервирует емкость. Если перезапуск отложен, и в это время ресурсы становятся недоступными, кластер может не запуститься после остановки или перезапуска. Кластеры, которые включили эту функцию до общедоступной доступности или которые еще не перезагружены с момента включения, не будут проходить проверку емкости.Невозможно отключить функцию.
После включения функция является постоянной. Вы не можете отключить интеграцию с виртуальной сетью сервера API.
Это обновление выполняет обновление версии образа узла во всех пулах узлов и перезапускает все рабочие нагрузки во время последовательного обновления образа.
Предупреждение
Преобразование кластера в интеграцию VNet с серверами API приводит к изменению IP-адреса сервера API, хотя его имя хоста остается неизменным. Если IP-адрес сервера API настроен в любых брандмауэрах или правилах группы безопасности сети, эти правила могут быть обновлены.
Обновите кластер для интеграции виртуальной сети с сервером API, используя команду
az aks updateс флагом--enable-apiserver-vnet-integration.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Включение или отключение режима приватного кластера в существующем кластере с интеграцией API сервера в виртуальную сеть
Кластеры AKS, настроенные с помощью интеграции виртуальных сетей API Server, могут иметь режим доступа к общедоступной сети или режим частного кластера включен или отключен без повторного развертывания кластера. Имя узла сервера API не изменяется, но при необходимости общедоступные записи DNS изменяются или удаляются.
Замечание
--disable-private-cluster в настоящее время находится в предварительной версии. Дополнительные сведения см. в разделе "Справочные материалы" и "Уровни поддержки".
Включение режима частного кластера
Включите режим частного кластера с помощью
az aks updateкоманды с флагом--enable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Отключение режима частного кластера
Отключите режим частного кластера с помощью
az aks updateкоманды с флагом--disable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Подключение к кластеру с помощью kubectl
Настройте
kubectl, чтобы подключиться к вашему кластеру с помощью командыaz aks get-credentials.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Обеспечьте доступ к серверу API через приватное подключение
Вы можете обеспечить доступ к конечной точке сервера API частного кластера с помощью интеграции сервера API с виртуальной сетью через Azure Private Link. Ниже показано, как создать службу приватного канала (PLS) в виртуальной сети кластера и подключиться к ней из другой виртуальной сети или подписки с помощью частной конечной точки.
Создать частный кластер интеграции VNet для сервера API
Создайте частный кластер AKS с интеграцией с виртуальной сетью для сервера API, используя команду
az aks createс флагами--enable-api-server-vnet-integrationи--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --enable-private-cluster \ --enable-apiserver-vnet-integration
Дополнительные сведения о настройке приватного канала с интеграцией виртуальной сети СЕРВЕРА API см. в статье "Приватный канал" с интеграцией виртуальной сети СЕРВЕРА API.
Правила безопасности NSG
Весь трафик в виртуальной сети разрешен по умолчанию. Но если вы добавили правила NSG для ограничения трафика между различными подсетями, убедитесь, что правила безопасности NSG разрешают следующие типы обмена данными:
| Место назначения | Исходный материал | Протокол | Порт | Использование |
|---|---|---|---|---|
| СЕРВЕРА APIServer подсети CIDR | Подсеть кластера | Протокол tcp | 443 и 4443 | Требуется для включения связи между узлами и сервером API. |
| СЕРВЕРА APIServer подсети CIDR | Azure Load Balancer (балансировщик нагрузки Azure) | Протокол tcp | 9988 | Требуется для включения взаимодействия между Azure Load Balancer и сервером API. Вы также можете разрешить всё взаимодействие между балансировщиком нагрузки Azure и подсетью сервера API с использованием CIDR. |
Дальнейшие шаги
- Сведения о связанных рекомендациях см. в рекомендациях по сетевому подключению и безопасности в AKS.
- Инструкции по настройке приватного канала с интеграцией виртуальной сети API Server см. в статье "Приватный канал" с интеграцией виртуальной сети СЕРВЕРА API.
Azure Kubernetes Service