Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается управление пользователем расширения оператора сетевой функции (NFO) для Azure Operator Service Manager. Это расширение кластера Kubernetes используется для управления контейнерно-ориентированными рабочими нагрузками, которые размещаются платформой Azure Operator Nexus.
Перед тем как выполнять команды, приведенные в этой статье, подготовьте кластер Nexus Azure Kubernetes Service (NAKS) для подключения расширения. Перед использованием команд необходимо предварительно установить Azure CLI и провести аутентификацию в целевой подписке.
Создание расширения NFO
Чтобы создать расширение NFO, выполните команду az k8s-extension createAzure CLI.
Команда
az k8s-extension create --cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--resource-group
--scope {cluster}
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
[--auto-upgrade {false, true}]
[--config global.networkfunctionextension.enableClusterRegistry={false, true}]
[--config global.networkfunctionextension.enableLocalRegistry={false, true}]
[--config global.networkfunctionextension.enableEarlyLoading={false,true}]
[--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.storageClassName=]
[--config global.networkfunctionextension.clusterRegistry.storageSize=]
[--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
[--config global.networkfunctionextension.clusterRegistry.registryService.scale={"small", "medium", "large"}]
[--version]
Обязательные параметры
--cluster-name -c
- Имя кластера Kubernetes.
--cluster-type -t
- Укажите кластеры Azure Arc, управляемые кластеры Службы Azure Kubernetes (AKS), устройства Azure Arc или
provisionedClusters. - Принятые значения:
connectedClusters.
--extension-type
- Имя типа расширения.
- Принятые значения:
Microsoft.Azure.HybridNetwork.
--name -n
- Имя экземпляра расширения.
--resource-group -g
- Имя группы ресурсов. Группу по умолчанию можно настроить с помощью
az configure --defaults group=groupname.
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
- Необходимо указать эту конфигурацию.
Необязательные параметры
--auto-upgrade
- Автоматическое обновление минорной версии экземпляра расширения.
- Допустимые значения:
false,true. - Значение по умолчанию:
true.
--release-train
- Укажите график выпусков для типа расширения.
- Допустимые значения:
preview,stable. - Значение по умолчанию:
stable.
--version
- Укажите явную версию для экземпляра расширения, если
--auto-upgrade-minor-versionне включен.
Необязательные конфигурации для конкретных компонентов
Загрузка приложений сторонним способом
--config global.networkfunctionextension.enableLocalRegistry=
- Эта конфигурация позволяет доставлять артефакты в периферийные узлы с помощью жесткого диска.
- Допустимые значения:
false,true. - Значение по умолчанию:
false.
Изменение веб-перехватчика pod
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
Эта конфигурация является необязательным параметром. Он начинает действовать только в том случае, если сетевые функции контейнера (CNF) устанавливаются в соответствующем пространстве имен релиза.
Эта конфигурация задает более детализированный контроль над правилами и
namespaceSelectors.Значение по умолчанию:.
"((object.metadata.namespace != \"kube-system\") || (object.metadata.namespace == \"kube-system\" && has(object.metadata.labels) && (has(object.metadata.labels.app) && (object.metadata.labels.app == \"commissioning\") || (has(object.metadata.labels.name) && object.metadata.labels.name == \"cert-exporter\") || (has(object.metadata.labels.app) && object.metadata.labels.app == \"descheduler\"))))"Условие сопоставления со ссылкой означает, что поды, принятые в
kube-systemпространстве имен, мутируются только в том случае, если они имеют по крайней мере одну из следующих меток:app == "commissioning",app == "descheduler"илиname == "cert-exporter". В противном случае они не мутируются и продолжают извлекаться из исходного источника в соответствии с диаграммой Helm CNF, компонента или приложения.Принятое значение: любое допустимое выражение языка CEL.
Этот параметр можно задать или обновить во время установки или обновления расширения NFO.
Это условие возникает только при установке CNF, компонента или приложения в пространство имен в соответствии с правилами и
namespaceSelectors. Если вы создаёте больше pod в этом пространстве имён, применяется это условие.
Реестр кластеров
--config global.networkfunctionextension.enableClusterRegistry=
- Эта конфигурация подготавливает реестр в кластере для локального кэширования артефактов.
- Значения по умолчанию включают режим отложенной загрузки, если только не
global.networkfunctionextension.enableEarlyLoading=true. - Допустимые значения:
false,true. - Значение по умолчанию:
false.
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- Эта конфигурация подготавливает реестр кластера в режиме высокой доступности (HA), если реестр кластера включен.
- Эта конфигурация использует том NAKS для рекомендации AKS
nexus-shared, если задано значениеfalse. - Число реплик pod реестра составляет минимум
3и максимум5. - Допустимые значения:
true,false. - Значение по умолчанию:
true.
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- Эта конфигурация подготавливает pod-ы реестра кластера с горизонтальным автомасштабированием.
- Допустимые значения:
true,false. - Значение по умолчанию:
true.
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- Эта конфигурация подготавливает несколько реплик веб-перехватчика для обеспечения высокой доступности.
- Допустимые значения:
true,false. - Значение по умолчанию:
true.
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- Эта конфигурация обеспечивает pod'ы вебхука с горизонтальным автомасштабированием.
- Допустимые значения:
true,false. - Значение по умолчанию:
true.
--config global.networkfunctionextension.enableEarlyLoading=
- Эта конфигурация позволяет ранней загрузке артефактов в реестр кластеров перед установкой или обновлением Helm.
- Включить эту конфигурацию можно только в том случае
global.networkfunctionextension.enableClusterRegistry=true. - Допустимые значения:
false,true. - Значение по умолчанию:
false.
--config global.networkfunctionextension.clusterRegistry.storageClassName=
- При этом необходимо указать эту конфигурацию
global.networkfunctionextension.enableClusterRegistry=true. -
networkfunctionextensionвыделяет постоянный запрос тома (ПВХ) для артефактов из локального кэша в этом классе хранилища. - Значения для конкретной платформы:
- AKS:
managed-csi - NAKS (по умолчанию):
nexus-shared - NAKS (non-HA):
nexus-volume - Azure Stack Edge:
managed-premium
- AKS:
- Значение по умолчанию:
nexus-shared.
Примечание.
- При управлении кластером NAKS с помощью Диспетчера служб оператора Azure значения параметров по умолчанию включают HA в качестве рекомендуемой конфигурации.
- При управлении кластером AKS с помощью Azure Operator Service Manager необходимо отключить HA с помощью следующих параметров конфигурации:
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
--config global.networkfunctionextension.webhook.highAvailability.enabled=false
--config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi
--config global.networkfunctionextension.clusterRegistry.storageSize=
- При этом необходимо указать эту конфигурацию
global.networkfunctionextension.enableClusterRegistry=true. - Эта конфигурация задает размер, который мы резервируем для реестра кластера.
- Эта конфигурация использует единицы в виде Ги и Ти для измерения.
- Значение по умолчанию:
100Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- Эту конфигурацию необходимо указать как расписание в стандартном формате Unix Crontab.
- Эта конфигурация, указанная как пустая строка, отключает запланированное задание, чтобы вы могли отказаться от выполнения сборки мусора.
- Значение по умолчанию:
0 0 * * *. Выполняет задание один раз в день.
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- Эта конфигурация задает пороговое значение процентного значения для запуска процесса сборки мусора для реестра кластера.
- Эта конфигурация активирует процесс сборки мусора, когда использование реестра кластера превышает это значение.
- Значение по умолчанию:
0.
--config global.networkfunctionextension.clusterRegistry.registryService.scale=
Эта конфигурация задает ресурсы ЦП и памяти для реестра кластера предварительно определенным параметром масштабирования.
Принятые значения:
small,medium,large.Значение по умолчанию:
medium.Ниже приведены спецификации ресурсов реестра для всех трех масштабов:
- requests: - small: cpu: 100m, memory: 250Mi - medium: cpu: 250m, memory: 500Mi - large: cpu: 500m, memory: 1Gi - limits: - small: cpu: 100m, memory: 2Gi - medium: cpu: 500m, memory: 2Gi - large: cpu: 1, memory: 4Gi
Обновление расширения NFO
Чтобы обновить расширение NFO, выполните команду az k8s-extension updateAzure CLI:
az k8s-extension update --resource-group
--cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
[--version] {version-target}
[--config global.networkfunctionextension.enableClusterRegistry={false, true}]
[--config global.networkfunctionextension.enableLocalRegistry={false, true}]
[--config global.networkfunctionextension.enableEarlyLoading={false,true}]
[--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.storageClassName=]
[--config global.networkfunctionextension.clusterRegistry.storageSize=]
[--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
Удалить расширение NFO
Чтобы удалить расширение NFO, выполните команду az k8s-extension deleteAzure CLI:
az k8s-extension delete --resource-group
--cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
Примеры
Создайте расширение NFO с автоматическим обновлением:
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork
Создайте расширение NFO с фиксированной версией.
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --auto-upgrade-minor-version false --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --version 1.0.2711-7
Создайте расширение NFO с помощью функции реестра кластера (режим отложенной загрузки) в NAKS:
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
Создайте расширение NFO с функцией реестра кластеров (режим отложенной загрузки) в AKS:
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
Создайте расширение NFO с включенной функцией реестра кластера (ранняя загрузка):
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.enableEarlyLoading=true --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
Создайте расширение NFO с включенной функцией загрузки на стороне:
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableLocalRegistry=true
Обновите расширение NFO, чтобы включить реестр кластера:
az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1 --cluster-type connectedClusters --name networkfunction-operator --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --config networkFunctionExtension.EnableManagedInClusterEdgeRegistry=true –-config networkFunctionExtension.EdgeRegistrySizeInGB=1024
Обновите расширение NFO, чтобы получить новую целевую версию:
az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1 --cluster-type connectedClusters --name networkfunction-operator --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --version X.X.XXXX-YYY