Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo orienta o gerenciamento de usuários de uma extensão de operador de função de rede (NFO) para o Azure Operator Service Manager. Você usa essa extensão de cluster do Kubernetes para gerenciar cargas de trabalho baseadas em contêiner que a plataforma Azure Operator Nexus hospeda.
Execute os comandos neste artigo depois de preparar o cluster Nexus Azure Kubernetes Service (NAKS) para a extensão de complemento. Os comandos presumem a instalação prévia da CLI do Azure e a autenticação na assinatura de destino.
Criar uma extensão NFO
Para criar uma extensão NFO, execute o comando az k8s-extension createAzure CLI .
Comando
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]
Parâmetros necessários
--cluster-name -c
- Nome do cluster Kubernetes.
--cluster-type -t
- Especifique clusters do Azure Arc, clusters gerenciados do Serviço Kubernetes do Azure (AKS), dispositivos do Azure Arc ou
provisionedClusters. - Valores aceites:
connectedClusters.
--extension-type
- Nome do tipo de extensão.
- Valores aceites:
Microsoft.Azure.HybridNetwork.
--name -n
- Nome da instância de extensão.
--resource-group -g
- Nome do grupo de recursos. Você pode configurar o grupo padrão usando
az configure --defaults group=groupname.
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
- Você deve fornecer essa configuração.
Parâmetros opcionais
--auto-upgrade
- Atualize automaticamente a versão menor da instância de extensão.
- Valores aceites:
false,true. - Valor predefinido:
true.
--release-train
- Especifique o trem de liberação para o tipo de extensão.
- Valores aceites:
preview,stable. - Valor predefinido:
stable.
--version
- Especifique a versão explícita a ser instalada para a instância de extensão se
--auto-upgrade-minor-versionnão estiver habilitada.
Configurações opcionais específicas de funcionalidades
Carregamento lateral
--config global.networkfunctionextension.enableLocalRegistry=
- Esta configuração permite que os artefatos sejam entregues para o edge por hardware.
- Valores aceites:
false,true. - Valor predefinido:
false.
Webhook mutante do pod
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
Esta configuração é um parâmetro opcional. Ele entra em jogo somente quando as funções de rede de contêiner (CNFs) são instaladas no namespace de versão correspondente.
Essa configuração configura um controle mais granular sobre as regras e
namespaceSelectors.Valor predefinido:
"((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\"))))"A condição de correspondência referenciada implica que os pods aceites no namespace
kube-systemserão mutados apenas se tiverem pelo menos um dos seguintes rótulos:app == "commissioning",app == "descheduler"ouname == "cert-exporter". Caso contrário, eles não são mutados e continuam a ser extraídos da fonte original de acordo com o gráfico Helm do CNF, componente ou aplicativo.Valor aceito: qualquer expressão CEL (Common Expression Language) válida.
Você pode definir ou atualizar esse parâmetro durante a instalação ou atualização da extensão NFO.
Essa condição entra em jogo somente quando você está instalando o CNF, componente ou aplicativo no namespace de acordo com as regras e
namespaceSelectors. Se você criar mais pods nesse namespace, essa condição será aplicada.
Registro de cluster
--config global.networkfunctionextension.enableClusterRegistry=
- Essa configuração provisiona um registro no cluster para armazenar artefatos em cache localmente.
- Os valores padrão habilitam o modo de carregamento lento, a menos que
global.networkfunctionextension.enableEarlyLoading=true. - Valores aceites:
false,true. - Valor predefinido:
false.
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- Essa configuração provisiona o registro de cluster no modo de alta disponibilidade (HA) se o registro de cluster estiver habilitado.
- Essa configuração usa um volume NAKS
nexus-sharedna recomendação do AKS se o valor estiver definido comofalse. - A contagem de réplicas do pod do registro é um mínimo de
3e um máximo de5. - Valores aceites:
true,false. - Valor predefinido:
true.
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- Essa configuração provisiona os pods de registro do cluster com dimensionamento automático horizontal.
- Valores aceites:
true,false. - Valor predefinido:
true.
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- Essa configuração fornece várias réplicas do webhook para alta disponibilidade.
- Valores aceites:
true,false. - Valor predefinido:
true.
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- Esta configuração provisiona os pods do webhook com dimensionamento automático horizontal.
- Valores aceites:
true,false. - Valor predefinido:
true.
--config global.networkfunctionextension.enableEarlyLoading=
- Essa configuração permite o carregamento antecipado de artefatos no registro do cluster antes da instalação ou atualização do Helm.
- Você pode habilitar essa configuração somente quando
global.networkfunctionextension.enableClusterRegistry=true. - Valores aceites:
false,true. - Valor predefinido:
false.
--config global.networkfunctionextension.clusterRegistry.storageClassName=
- Você deve fornecer essa configuração quando
global.networkfunctionextension.enableClusterRegistry=true. -
networkfunctionextensionprovisiona uma declaração de volume persistente (PVC) para artefatos de cache local dessa classe de armazenamento. - Valores específicos da plataforma:
- AKS:
managed-csi - NAKS (padrão):
nexus-shared - NAKS (não HA):
nexus-volume - Azure Stack Edge:
managed-premium
- AKS:
- Valor predefinido:
nexus-shared.
Nota
- Quando você está gerenciando um cluster NAKS usando o Azure Operator Service Manager, os valores de parâmetro padrão habilitam HA como a configuração recomendada.
- Ao gerenciar um cluster AKS usando o Azure Operator Service Manager, você deve desabilitar a HA usando as seguintes opções de configuração:
--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=
- Você deve fornecer essa configuração quando
global.networkfunctionextension.enableClusterRegistry=true. - Essa configuração define o tamanho que reservamos para o registro do cluster.
- Esta configuração utiliza unidades como Gi e Ti para dimensionamento.
- Valor predefinido:
100Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- Você deve fornecer esta configuração como um cronograma no formato padrão Unix Crontab.
- Essa configuração, especificada como uma cadeia de caracteres vazia, desabilita o trabalho agendado para que você possa desativar a execução da coleta de lixo.
- Valor predefinido:
0 0 * * *. Executa o trabalho uma vez por dia.
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- Essa configuração especifica o valor de limite percentual para disparar o processo de coleta de lixo para o registro de cluster.
- Essa configuração dispara o processo de coleta de lixo quando o uso do registro do cluster excede esse valor.
- Valor predefinido:
0.
--config global.networkfunctionextension.clusterRegistry.registryService.scale=
Essa configuração define os recursos de CPU e memória para o registro do cluster como uma opção de escala predefinida.
Valores aceites:
small,medium,large.Valor predefinido:
medium.A seguir estão as especificações de recursos do Registro para todas as três escalas:
- 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
Atualizar uma extensão NFO
Para atualizar uma extensão NFO, execute o comando 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=]
Excluir uma extensão NFO
Para excluir uma extensão NFO, execute o comando 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
Exemplos
Crie uma extensão NFO com atualização automática:
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
Crie uma extensão NFO com uma versão fixada:
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
Crie uma extensão NFO com o recurso de registro de cluster (modo de carregamento lento padrão) habilitado no 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
Crie uma extensão NFO com o recurso de registro de cluster (modo de carregamento lento padrão) ativado no 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
Crie uma extensão NFO com o recurso de registro de cluster (carregamento antecipado) habilitado:
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
Crie uma extensão NFO com o recurso de carregamento lateral ativado:
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
Atualize uma extensão NFO para habilitar o registro do cluster:
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
Atualize uma extensão NFO para alcançar uma nova versão de destino:
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