Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo orienta o gerenciamento de usuário de uma extensão NFO (operador de função de rede) para o Gerenciador de Serviços de Operador do Azure. Use essa extensão de cluster do Kubernetes para gerenciar cargas de trabalho baseadas em contêiner hospedadas pela plataforma Nexus do Operador do Azure.
Execute os comandos deste artigo após preparar o cluster do Serviço de Kubernetes do Azure (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 createda CLI do Azure.
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 do Kubernetes.
--cluster-type -t
- Especifique clusters do Azure Arc, clusters gerenciados do AKS (Serviço de Kubernetes do Azure), dispositivos do Azure Arc ou
provisionedClusters. - Valores aceitos:
connectedClusters.
--extension-type
- Nome do tipo da extensão.
- Valores aceitos:
Microsoft.Azure.HybridNetwork.
--name -n
- Nome da instância da 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 aceitos:
false,true. - Valor padrão:
true.
--release-train
- Especifique o trem de liberação para o tipo de extensão.
- Valores aceitos:
preview,stable. - Valor padrão:
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 do recurso
Carregamento lateral
--config global.networkfunctionextension.enableLocalRegistry=
- Esta configuração permite que artefatos sejam entregues na borda por meio da unidade de hardware.
- Valores aceitos:
false,true. - Valor padrão:
false.
Webhook de mutação de pods
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
Essa configuração é um parâmetro opcional. Ele entra em ação somente quando as funções de rede de contêiner (CNFs) são instaladas no namespace de versão correspondente.
Essa configuração define um controle mais granular sobre as regras e
namespaceSelectors.Valor padrão:
"((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 aceitos no namespace
kube-systemsão modificados somente se tiverem pelo menos um dos seguintes rótulos:app == "commissioning",app == "descheduler"ouname == "cert-exporter". Caso contrário, eles não são modificados e continuam sendo extraídos da origem original, de acordo com o Helm chart da CNF, do componente ou do 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ê estiver instalando o CNF, o componente ou o 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 aceitos:
false,true. - Valor padrão:
false.
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- Essa configuração provisiona o registro de clusters no modo HA (alta disponibilidade) se o registro de clusters estiver habilitado.
- Essa configuração usará um volume NAKS
nexus-sharedna recomendação do AKS se o valor for definido comofalse. - O número de réplicas do pod do Registro é no mínimo
3e no máximo5. - Valores aceitos:
true,false. - Valor padrão:
true.
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- Esta configuração provisiona os pods do registro do cluster com dimensionamento automático horizontal.
- Valores aceitos:
true,false. - Valor padrão:
true.
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- Essa configuração provisiona várias réplicas do webhook para alta disponibilidade.
- Valores aceitos:
true,false. - Valor padrão:
true.
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- Esta configuração provisiona os pods de webhook com dimensionamento automático horizontal.
- Valores aceitos:
true,false. - Valor padrão:
true.
--config global.networkfunctionextension.enableEarlyLoading=
- Essa configuração permite o carregamento antecipado de artefatos no registro de cluster antes da instalação ou atualização do Helm.
- Você só pode habilitar essa configuração quando
global.networkfunctionextension.enableClusterRegistry=true. - Valores aceitos:
false,true. - Valor padrão:
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 armazenar localmente em cache artefatos desta 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 padrão:
nexus-shared.
Observação
- Quando você está gerenciando um cluster NAKS usando o Gerenciador de Serviços de Operador do Azure, os valores de parâmetro padrão habilitam a HA como a configuração recomendada.
- Ao gerenciar um cluster do AKS usando o Gerenciador de Serviços de Operador do Azure, 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 de cluster.
- Essa configuração usa unidades como Gi e Ti para dimensionamento.
- Valor padrão:
100Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- Você deve fornecer essa configuração como um agendamento no formato padrão do Unix Crontab.
- Essa configuração, especificada como uma cadeia de caracteres vazia, desabilita o trabalho agendado para que você possa recusar a execução da coleta de lixo.
- Valor padrão:
0 0 * * *. Executa o trabalho uma vez por dia.
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- Essa configuração especifica o valor do limite de porcentagem 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 de cluster excede esse valor.
- Valor padrão:
0.
--config global.networkfunctionextension.clusterRegistry.registryService.scale=
Essa configuração define os recursos de CPU e memória do registro de cluster como uma opção de escala predefinida.
Valores aceitos:
small,medium,large.Valor padrão:
medium.A seguir estão as especificações de recurso 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 updateda CLI do Azure:
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 deleteda CLI do Azure:
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 do 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 do cluster (modo de carregamento lento padrão) habilitado 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 agrupamento habilitado (carregamento antecipado):
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 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.enableLocalRegistry=true
Atualize uma extensão NFO para habilitar o registro de 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