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


Часто задаваемые вопросы об AKS

В этой статье приведены ответы на некоторые из наиболее распространенных вопросов о Служба Azure Kubernetes (AKS).

Поддержка

AKS предлагает соглашение об уровне обслуживания?

AKS предоставляет гарантии соглашения об уровне обслуживания (SLA) в ценовой категории "Стандартный" с функцией соглашения об уровне обслуживания.

Что такое поддержка платформы и что такое поддержка платформы?

Поддержка платформы — это сокращенный план поддержки для неподдерживаемых кластеров версии n-3. Поддержка платформы включает только поддержку инфраструктуры Azure.

Дополнительные сведения см. в политике поддержки платформы.

Автоматически ли AKS обновляет неподдерживаемые кластеры?

Да, AKS инициирует автоматическое обновление неподдерживаемых кластеров. Если кластер в версии n-3 (где n является последней поддерживаемой дополнительной версией AKS, которая общедоступна) будет удален до n-4, AKS автоматически обновляет кластер до n-2, чтобы остаться в политике поддержки AKS.

Дополнительные сведения см. в статье "Поддерживаемые версии Kubernetes", "Запланированные периоды обслуживания" и "Автоматическое обновление".

Можно ли запускать контейнеры Windows Server в AKS?

Да, AKS поддерживает контейнеры Windows Server. Дополнительные сведения см. в разделе "Часто задаваемые вопросы о Windows Server в AKS".

Можно ли применять скидки на резервирования Azure к узлам агента AKS?

Счета за узлы агента AKS выставляются как стандартные виртуальные машины Azure. Если вы приобрели резервирования Azure для размера виртуальной машины, используемой в AKS, эти скидки применяются автоматически.

Операции

Можно ли переместить или перенести кластер между клиентами Azure?

Нет. Перемещение кластера AKS между клиентами в настоящее время не поддерживается.

Можно ли перемещать или переносить кластер между подписками?

Нет. Перемещение кластера AKS между подписками в настоящее время не поддерживается.

Можно ли переносить кластер AKS или ресурсы инфраструктуры кластера в другие группы ресурсов или переименовывать их?

Нет. Перемещение или переименование кластера AKS и связанных с ним ресурсов не поддерживается.

Можно ли восстановить кластер после удаления?

Нет. После удаления кластера невозможно восстановить его. При удалении кластера группа ресурсов узла и все его ресурсы также удаляются.

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

Можно ли масштабировать кластер AKS до нуля?

Вы можете полностью остановить запущенный кластер AKS или масштабировать или автомасштабировать все или определенные User пулы узлов до нуля.

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

Можно ли использовать API масштабируемого набора виртуальных машин для масштабирования вручную?

Нет. Операции масштабирования, использующие API масштабируемого набора виртуальных машин, не поддерживаются. Api AKS (az aks scale) можно использовать.

Можно ли использовать масштабируемые наборы виртуальных машин для ручного масштабирования до нуля узлов?

Нет. Операции масштабирования, использующие API масштабируемого набора виртуальных машин, не поддерживаются. API AKS можно использовать для масштабирования несистемных пулов узлов до нуля или остановки кластера .

Можно ли остановить или отменить размещение всех виртуальных машин?

Нет. Такая конфигурация не поддерживается. Вместо этого следует остановить работу кластера.

Почему с AKS создаются две группы ресурсов?

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

Для обеспечения такой архитектуры каждое развертывание AKS охватывает две группы ресурсов.

  1. Первую группу ресурсов создаете вы. Эта группа содержит только ресурс службы Kubernetes. Поставщик ресурсов AKS автоматически создает вторую группу ресурсов во время развертывания. Примером второй группы ресурсов является MC_myResourceGroup_myAKSCluster_eastus. Сведения об указании имени второй группы ресурсов см. в следующем разделе.
  2. Вторая группа ресурсов, которая называется группой ресурсов узла, содержит все ресурсы инфраструктуры, связанные с кластером. Эти ресурсы включают виртуальные машины узла Kubernetes, виртуальную сеть и хранилище. По умолчанию группа ресурсов узла имеет имя наподобие MC_myResourceGroup_myAKSCluster_eastus. AKS автоматически удаляет группу ресурсов узла при удалении кластера. Используйте эту группу ресурсов только для ресурсов, использующих жизненный цикл кластера.

Примечание.

Изменение любого ресурса в группе ресурсов узла в кластере AKS является неподдерживаемым действием и приведет к сбоям операции кластера. Вы можете предотвратить внесение изменений в группу ресурсов узла. Запретить пользователям изменять ресурсы , которым управляет кластер AKS.

Можно ли указать собственное имя для группы ресурсов узла AKS?

По умолчанию AKS называет группу ресурсов узла MC_resourcegroupname_clustername_location, но вы можете указать собственное имя.

Чтобы указать собственное имя для группы ресурсов, установите для Azure CLI расширение aks-preview 0.3.2 или более поздней версии. При создании кластера AKS с помощью az aks create команды используйте --node-resource-group параметр и укажите имя группы ресурсов. При использовании шаблона Azure Resource Manager для развертывания кластера AKS можно определить имя группы ресурсов с помощью nodeResourceGroup свойства.

  • Поставщик ресурсов Azure автоматически создает вторичную группу ресурсов.
  • Можно указать имя настраиваемой группы ресурсов только при создании кластера.

При работе с группой ресурсов узла невозможно:

  • указать существующую группу ресурсов для узлов;
  • поместить узлы в группу ресурсов в другой подписке;
  • Измените имя группы ресурсов узла после создания кластера.
  • выбрать имена управляемых ресурсов в группе ресурсов узла;
  • изменять или удалять созданные Azure теги управляемых ресурсов в группе ресурсов для узлов.

Можно ли изменять теги и другие свойства ресурсов AKS в группе ресурсов узла?

При изменении или удалении тегов, созданных Azure, и других свойств ресурсов в группе ресурсов узла могут возникнуть непредвиденные ошибки масштабирования и обновления. AKS позволяет создавать и изменять пользовательские теги, созданные конечными пользователями, и при создании пула узлов эти теги можно добавить. Это может потребоваться, например, для назначения подразделения или места возникновения затрат. Другим вариантом является создание политик Azure с областью в управляемой группе ресурсов.

Созданные Azure теги создаются для соответствующих служб Azure, и их всегда следует разрешить. Для AKS существуют aks-managed и k8s-azure теги. Изменение любых тегов , созданных Azure, на ресурсах в группе ресурсов узла в кластере AKS является неподдерживаемым действием, которое нарушает цель уровня обслуживания (SLO).

Примечание.

В прошлом имя Owner тега зарезервировано для AKS для управления общедоступным IP-адресом, назначенным интерфейсным IP-адресом подсистемы балансировки нагрузки. Теперь службы используют aks-managed префикс. Для устаревших ресурсов не используйте политики Azure для применения имени тега Owner . В противном случае все ресурсы в развертывании кластера AKS и операциях обновления будут нарушены. Это ограничение не применяется к вновь созданным ресурсам.

Почему в кластере отображаются префиксные выпуски Helm, управляемые aks, и почему их количество исправлений продолжает увеличиваться?

AKS использует Helm для доставки компонентов в кластер. Вы можете безопасно игнорировать префиксированные aks-managed выпуски Helm. Постоянно увеличивая редакции в этих выпусках Helm, ожидаются и безопасны.

Квоты, ограничения и доступность регионов

В каких регионах Azure в настоящее время предоставляется служба AKS?

Полный список регионов, в которых доступна служба AKS, см. в разделе Регионы доступности.

Может ли кластер AKS охватывать несколько регионов?

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

Может ли кластер AKS охватывать несколько зон доступности?

Да, кластер AKS можно развернуть в одном или нескольких зонах доступности в регионах, поддерживающих их.

Могут ли в одном кластере быть виртуальные машины разных размеров?

Да, вы можете использовать различные размеры виртуальных машин в кластере AKS, создав несколько пулов узлов.

Какое ограничение размера для образа контейнера в AKS?

AKS не задает ограничение размера образа контейнера. Но чем больше изображение, тем выше спрос на память. Больший размер может превышать ограничения ресурсов или общую доступную память рабочих узлов. По умолчанию для размера виртуальной машины Standard_DS2_v2 для кластера AKS выделяется 7 ГиБ памяти.

Если образ контейнера слишком велик, как и в диапазоне терабайтов (ТБ), kubelet может не иметь возможности извлечь его из реестра контейнеров на узел из-за нехватки места на диске.

Для узлов Windows Server Центр обновления Windows не выполняет автоматический запуск и применение последних обновлений. Необходимо выполнить обновление в кластере и пулах узлов Windows Server в кластере AKS. Следуйте регулярному расписанию на основе цикла выпуска Центра обновления Windows и собственного процесса проверки. Этот процесс обновления создает узлы, на которых выполняются последние образы и исправления Windows Server, а затем удаляют старые узлы. Дополнительные сведения об обновлении пула узлов в AKS см. в этой статье.

Требуется ли запускать образы AKS от имени привилегированного пользователя (root)?

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

  • mcr.microsoft.com/oss/kubernetes/coredns
  • mcr.microsoft.com/azuremonitor/containerinsights/ciprod
  • mcr.microsoft.com/oss/calico/node
  • mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi

Безопасность, доступ и удостоверение

Можно ли ограничить доступ пользователей к серверу API Kubernetes?

Да, существует два варианта ограничения доступа к серверу API:

Применяются ли обновления для системы безопасности к узлам агентов AKS?

AKS исправления CVEs, которые имеют поставщик исправлений каждую неделю. CVEs без исправления ожидают исправления поставщика, прежде чем они могут быть исправлены. Образы AKS автоматически обновляются в течение 30 дней. Рекомендуется применить обновленный образ узла к регулярной частоте, чтобы обеспечить применение последних исправленных образов и исправлений ОС. Эту задачу можно выполнить:

Существуют ли угрозы безопасности, предназначенные для AKS, о которых я должен знать?

Корпорация Майкрософт предоставляет рекомендации по другим действиям, которые можно предпринять для защиты рабочих нагрузок с помощью таких служб, как Microsoft Defender для контейнеров. Сведения об угрозе безопасности, связанной с AKS и Kubernetes, см. в статье о новых крупномасштабных кампаниях kubeflow (8 июня 2021 г.).

Хранят ли AKS какие-либо данные клиента за пределами региона кластера?

Нет. Все данные хранятся в регионе кластера.

Как избежать медленных проблем с настройкой прав владения разрешениями при наличии большого количества файлов в томе?

Традиционно, если модуль pod выполняется как пользователь, не являющийся пользователем ,который он должен, необходимо указать fsGroup параметр внутри контекста безопасности pod, чтобы том был доступен для чтения и записи в модуле pod. Дополнительные сведения об этом требовании см. в разделе "Настройка контекста безопасности" для модуля pod или контейнера.

Побочный эффект настройки fsGroup заключается в том, что при каждом установке тома Kubernetes должен использовать chown() и chmod() команды рекурсивно для всех файлов и каталогов внутри тома (с несколькими исключениями). Этот сценарий происходит даже в том случае, если владение группой тома уже соответствует запрошенному fsGroup параметру. Эта конфигурация может быть дорогой для больших томов с большим количеством небольших файлов, что может привести к тому, что запуск pod займет много времени. Этот сценарий был известной проблемой до версии 1.20. Обходной путь — задать pod для запуска в качестве корневого каталога:

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 0
    fsGroup: 0

Проблема устранена с помощью Kubernetes версии 1.20. Дополнительные сведения см. в статье Kubernetes 1.20: детальный контроль изменений разрешений тома.

Сеть

Как управляемый уровень управления взаимодействует с моими узлами?

AKS использует безопасное подключение туннеля, чтобы позволить api-server и отдельным узлам kubelets взаимодействовать даже в отдельных виртуальных сетях. Туннель защищен с помощью взаимного шифрования транспортного уровня безопасности. Текущий основной туннель, который использует AKS , — Konnectivity, ранее известный как apiserver-network-proxy. Убедитесь, что все сетевые правила соответствуют необходимым правилам сети Azure и полным доменным именам (FQDN).

Можно ли использовать полное доменное имя сервера API вместо IP-адреса кластера?

Да, можно добавить заметку kubernetes.azure.com/set-kube-service-host-fqdn в модули pod, чтобы задать KUBERNETES_SERVICE_HOST переменное доменное имя сервера API вместо IP-адреса службы в кластере. Это изменение полезно в случаях, когда исходящий трафик кластера выполняется через брандмауэр уровня 7. Примером является использование брандмауэра Azure с правилами приложения.

Можно ли настроить группы безопасности сети с AKS?

AKS не применяет группы безопасности сети (NSG) к своей подсети и не изменяет группы безопасности сети, связанные с этой подсетью. AKS изменяет только параметры NSG сетевого интерфейса. Если вы используете сетевой интерфейс контейнера (CNI), необходимо также убедиться, что правила безопасности в группах безопасности в группах безопасности разрешают трафик между диапазонами маршрутизации без класса узла и pod без класса (CIDR). Если вы используете kubenet, необходимо также убедиться, что правила безопасности в группах безопасности в группах безопасности разрешают трафик между узлом и ciDR pod. Дополнительные сведения см. в разделе Группы безопасности сети.

Как работает синхронизация времени в AKS?

Узлы AKS запускают службу хронии, которая извлекает время из локального узла. Контейнеры, которые выполняются в модулях pod, получают время от узлов AKS. Приложения, открытые внутри контейнера, используют время из контейнера pod.

Надстройки, расширения и интеграции

Можно ли использовать пользовательские расширения виртуальных машин?

Нет. AKS — это управляемая служба. Обработка ресурсов инфраструктуры как службы (IaaS) не поддерживается. Чтобы установить пользовательские компоненты, используйте интерфейсы API и механизмы Kubernetes. Например, используйте daemonSets для установки всех необходимых компонентов.

Какие контроллеры допуска Kubernetes поддерживает AKS? Можно ли добавлять и удалять контроллеры допуска?

AKS поддерживает следующие контроллеры допуска:

  • NamespaceLifecycle
  • LimitRanger
  • ServiceAccount
  • DefaultIngressClass
  • DefaultStorageClass
  • DefaultTolerationSeconds
  • MutatingAdmissionWebhook
  • ValidatingAdmissionWebhook
  • ResourceQuota
  • PodNodeSelector
  • PodTolerationRestriction
  • ExtendedResourceToleration

В настоящее время изменить список контроллеров допуска в AKS невозможно.

Можно ли использовать веб-перехватчики контроллеров допуска в AKS?

Да, вы можете использовать веб-перехватчики контроллера допуска в AKS. Рекомендуется исключить внутренние пространства имен AKS, помеченные control-plane меткой. Например:

namespaceSelector:
    matchExpressions:
    - key: control-plane
      operator: DoesNotExist

AKS брандмауэрирует исходящий трафик сервера API, чтобы веб-перехватчики контроллера допуска были доступны из кластера.

Могут ли веб-перехватчики контроллера допуска повлиять на пространство имен kube-system и внутренние пространства имен AKS?

Чтобы защитить стабильность системы и запретить пользовательским контроллерам допуска влиять на внутренние службы в kube-system пространстве имен, AKS имеет средство принудительного применения, которое автоматически исключает kube-system и внутренние пространства имен AKS. Эта служба гарантирует, что пользовательские контроллеры допуска не влияют на службы, в которые выполняются kube-system.

Если у вас есть критически важный вариант использования для развертывания чего-либо kube-system (не рекомендуется) в поддержке пользовательского веб-перехватчика допуска, можно добавить следующую метку или заметку, чтобы средство принудительного применения допуска пропускало его:

  • Метка: "admissions.enforcer/disabled": "true"
  • Аннотация: "admissions.enforcer/disabled": true

Интегрируется ли Azure Key Vault с AKS?

Поставщик Azure Key Vault для CSI Driver обеспечивает встроенную интеграцию Azure Key Vault с AKS.

Можно ли использовать библиотеки шифрования FIPS с развертываниями в AKS?

Теперь узлы, включенные с помощью федеральных стандартов обработки информации (FIPS), поддерживаются в пулах узлов на основе Linux. Дополнительные сведения см. в статье Добавление пула узлов с поддержкой FIPS.

Как обновляются надстройки AKS?

Любое исправление, включая исправление безопасности, автоматически применяется к кластеру AKS. Все, что больше, чем исправление, например основные или незначительные изменения версий (которые могут иметь критические изменения в развернутых объектах), обновляются при обновлении кластера, если новый выпуск доступен. Сведения о доступности нового выпуска см. в заметках о выпуске AKS.

Что такое расширение AKS Linux, которое я вижу в экземплярах масштабируемых наборов виртуальных машин Linux?

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

  • Узел-экспортер: собирает данные телеметрии оборудования из виртуальной машины и делает его доступным с помощью конечной точки метрик. Затем средство мониторинга, например Prometheus, может отказаться от этих метрик.
  • Детектор проблем с узлами: стремится сделать различные проблемы узлов видимыми для вышестоящих слоев в стеке управления кластерами. Это системный модуль, который выполняется на каждом узле, обнаруживает проблемы с узлами и сообщает их серверу API кластера с помощью Events и NodeConditions.
  • ig: является платформой с открытым исходным кодом eBPF для отладки и наблюдения за системами Linux и Kubernetes. Он предоставляет набор средств (или гаджетов), которые собирают соответствующие сведения, которые пользователи могут использовать для выявления причин проблем с производительностью, сбоев или других аномалий. В частности, независимость от Kubernetes позволяет пользователям использовать его также для отладки проблем уровня управления.

Эти средства помогают обеспечить наблюдаемость во многих проблемах работоспособности узлов, таких как:

  • Проблемы с управляющей программой инфраструктуры: Служба NTP вниз
  • Проблемы с оборудованием: Недопустимый ЦП, память или диск
  • Проблемы с ядром: Взаимоблокировка ядра, поврежденная файловая система
  • Проблемы со средой выполнения контейнера: Управляющая программа неответственной среды выполнения

Для расширения не требуется дополнительный исходящий доступ к url-адресам, IP-адресам или портам за пределами задокументированных требований исходящего трафика AKS. Для этого не требуются специальные разрешения, предоставленные в Azure. Он используется kubeconfig для подключения к серверу API для отправки собранных данных мониторинга.

Устранение неполадок с кластером

Почему это занимает так много времени для удаления кластера?

Большинство кластеров удаляются по запросу пользователя. В некоторых случаях, особенно в тех случаях, когда вы приносите собственную группу ресурсов или выполняете задачи между группами ресурсов, удаление может занять больше времени или даже сбой. Если у вас возникли проблемы с удалением, убедитесь, что у вас нет блокировок в группе ресурсов. Кроме того, убедитесь, что все ресурсы за пределами группы ресурсов не связаны с группой ресурсов.

Почему это занимает так много времени для создания или обновления кластера?

Если у вас возникли проблемы с созданием и обновлением кластеров, убедитесь, что у вас нет назначенных политик или ограничений служб, которые могут блокировать управление ресурсами AKS, такими как виртуальные машины, подсистемы балансировки нагрузки или теги.

Если у меня есть модули pod или развертывания в состояниях NodeLost или Unknown, можно ли обновить кластер?

Вы можете, но мы не рекомендуем его. Выполняйте обновления, когда состояние кластера известно и работоспособно.

Если у меня есть кластер с одним или несколькими узлами в неработоспособном состоянии или если он завершится, можно ли выполнить обновление?

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

Я пытался удалить кластер, но я вижу ошибку "[Errno 11001] getaddrinfo не удалось".

Чаще всего эта ошибка возникает, если у вас есть одна или несколько групп безопасности сети, которые по-прежнему связаны с кластером. Удалите их и повторите попытку удалить кластер.

Я выполнил обновление, но теперь мои модули pod находятся в циклах аварийного сбоя и пробы готовности завершаются сбоем.

Убедитесь, что срок действия субъекта-службы не истек. Дополнительные сведения см. в разделе "Субъект-служба AKS " и учетные данные обновления AKS.

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

Убедитесь, что срок действия субъекта-службы не истек. Дополнительные сведения см. в разделе "Субъект-служба AKS " и учетные данные обновления AKS.