Azure Kubernetes Service (AKS) для расширенных зон

Служба Azure Kubernetes (AKS) для расширенных зон предоставляет широкий и сложный набор возможностей, которые упрощают развертывание и эксплуатацию полностью управляемого кластера Kubernetes в сценарии расширенной зоны.

AKS общедоступна в расширенных зонах Azure для общедоступных кластеров и частных кластеров. Актуальный список поддерживаемых служб и функций см. в разделе Предложения служб для Azure Extended Zones.

Что такое расширенные зоны Azure?

Расширенные зоны Azure — это компактные расширения Azure, размещаемые в крупных городах, отраслевых центрах или в определенной юрисдикции для поддержки рабочих нагрузок с низкой задержкой и рабочих нагрузок, требующих хранения данных в определенной юрисдикции. Расширенные зоны Azure поддерживают виртуальные машины , контейнеры, хранилище и выбранный набор служб Azure. Они могут запускать приложения, чувствительные к задержке и нагружающие пропускную способность, расположенные близко к конечным пользователям и в пределах утвержденных границ расположения данных.

Расширенные зоны Azure являются частью глобальной сети Майкрософт, которая обеспечивает безопасное, надежное и высокоскоростное подключение между приложениями, работающими в расширенной зоне Azure, близкой к пользователю. Расширенные зоны устраняют низкую задержку и расположение данных, предоставляя все преимущества экосистемы Azure (доступ, взаимодействие с пользователем, автоматизация, безопасность и многое другое) ближе к вам или вашей юрисдикции. Сайты расширенной зоны Azure связаны с родительским регионом Azure, в котором размещаются все функции уровня управления, связанные со службами, работающими в расширенной зоне.

Дополнительные сведения см. в обзоре расширенных зон Azure.

Что такое AKS для расширенных зон?

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

Схема архитектуры развертывания Azure Extended Zones для AKS, иллюстрирующая, что контрольный уровень развертывается в регионе Azure, а узлы агентов — в расширенной зоне Azure.

Создание кластера AKS для расширенных зон использует оптимизированную архитектуру, которая специально адаптирована для удовлетворения уникальных потребностей и требований приложений и рабочих нагрузок расширенных зон. Уровень управления кластеров создается, развертывается и настраивается в ближайшем регионе Azure, а узлы агентов и пулы узлов, подключенные к кластеру, находятся в расширенной зоне Azure. Компоненты кластера AKS для расширенных зон идентичны компонентам в типичном кластере, развернутом в регионе Azure, что гарантирует, что поддерживается тот же уровень функциональности и производительности. Дополнительные сведения см. в разделе основные понятия Kubernetes для AKS.

Развертывание кластера в местоположении расширенной зоны Azure

Развертывание кластера AKS в расширенной зоне Azure аналогично развертыванию кластера AKS в любом другом регионе. Все поставщики ресурсов предоставляют поле с именем extendedLocation, которое можно использовать для развертывания ресурсов в расширенной зоне Azure. Это позволяет точно и целенаправленно развернуть ваш кластер AKS.

Prerequisites

  • Прежде чем развернуть кластер AKS для расширенных зон, подписка должна иметь доступ к целевому расположению расширенной зоны Azure. Этот доступ предоставляется через наш процесс подключения, выполнив действия, описанные в обзоре расширенных зон Azure.
  • Кластер должен работать под управлением Kubernetes версии 1.24 или более поздней.
  • Учетная запись, используемая для создания кластера, должна иметь соответствующие минимальные разрешения. Дополнительные сведения о доступе и удостоверении для AKS см. в разделе «Параметры доступа и удостоверения для службы Azure Kubernetes (AKS)».

Пределы и ограничения

При развертывании кластера AKS в расширенной зоне Azure применяются следующие ограничения и ограничения:

  • AKS для расширенных зон позволяет выполнять автомасштабирование только до 100 нод в пуле нод.
  • Во всех расширенных зонах Azure максимальное число узлов составляет 100.
  • В расширенных зонах Azure предлагаются только выбранные номера SKU виртуальных машин.

Для указания желаемой зоны Azure Extended в шаблоне ARM, используйте параметр extendedLocation.

"extendedLocation": {
    "name": "<extended-zone-id>",
    "type": "EdgeZone",
},

Следующий шаблон ARM развертывает новый кластер в расширенной зоне Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "2637152180661081755"
    }
  },
  "parameters": {
    "clusterName": {
      "type": "string",
      "defaultValue": "myAKSCluster",
      "metadata": {
        "description": "The name of the Managed Cluster resource."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location of the Managed Cluster resource."
      }
    },
    "edgeZoneName": {
      "type": "String",
      "metadata": {
        "description": "The name of the Azure Extended Zone"
      }
    },
    "dnsPrefix": {
      "type": "string",
      "metadata": {
        "description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
      }
    },
    "osDiskSizeGB": {
      "type": "int",
      "defaultValue": 0,
      "maxValue": 1023,
      "minValue": 0,
      "metadata": {
        "description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 3,
      "maxValue": 50,
      "minValue": 1,
      "metadata": {
        "description": "The number of nodes for the cluster."
      }
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "standard_d2s_v3",
      "metadata": {
        "description": "The size of the Virtual Machine."
      }
    },
    "linuxAdminUsername": {
      "type": "string",
      "metadata": {
        "description": "User name for the Linux Virtual Machines."
      }
    },
    "sshRSAPublicKey": {
      "type": "string",
      "metadata": {
        "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerService/managedClusters",
      "apiVersion": "2024-09-01",
      "name": "[parameters('clusterName')]",
      "location": "[parameters('location')]",
      "extendedLocation": {
        "name": "[parameters('edgeZoneName')]",
        "type": "EdgeZone"
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "dnsPrefix": "[parameters('dnsPrefix')]",
        "agentPoolProfiles": [
          {
            "name": "agentpool",
            "osDiskSizeGB": "[parameters('osDiskSizeGB')]",
            "count": "[parameters('agentCount')]",
            "vmSize": "[parameters('agentVMSize')]",
            "osType": "Linux",
            "mode": "System"
          }
        ],
        "linuxProfile": {
          "adminUsername": "[parameters('linuxAdminUsername')]",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "[parameters('sshRSAPublicKey')]"
              }
            ]
          }
        }
      }
    }
  ],
  "outputs": {
    "controlPlaneFQDN": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))).fqdn]"
    }
  }
}

Если вы не знакомы с шаблонами ARM, ознакомьтесь с руководством по развертыванию локального шаблона ARM.

Дальнейшие шаги

После развертывания кластера AKS в расширенной зоне Azure узнайте о параметрах конфигурации кластера AKS.