Compartilhar via


Gerenciar a extensão do operador da função de rede

Este artigo orienta o gerenciamento de usuários da extensão NFO (operador de função de rede) do AOSM (Azure Operator Service Manager). Essa extensão de cluster kubernetes é usada como parte da oferta do serviço AOSM e usada para gerenciar cargas de trabalho baseadas em contêiner, hospedadas pela plataforma Nexus do Operador do Azure.

Visão geral

Esses comandos são executados depois de preparar o cluster NAKS para a extensão de complemento e presumir a instalação anterior da CLI do Azure e a autenticação na assinatura de destino.

Criar a extensão de função de rede

O comando da CLI do Azure 'az k8s-extension create' é executado para instalar a extensão NFO.

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=]
                        [--version]

Parâmetros obrigatórios

--cluster-name -c

  • Nome do cluster do Kubernetes.

--cluster-type -t

  • Especifique clusters Arc ou clusters gerenciados do AKS (Serviço de Kubernetes do Azure) ou dispositivos 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

  • Essa configuração deve ser fornecida.

Parâmetros Opcionais

--auto-upgrade

  • Atualizar automaticamente a versão da instância de extensão.
  • Valores aceitos: false, true.
  • Valor padrão: true.

--release-train

  • Especifique o trem de versão para o tipo de extensão.
  • Valores aceitos: versão prévia, estável.
  • Valor padrão: estável.

--version

  • Especifique a versão explícita a ser instalada para a instância de extensão se '--auto-upgrade-minor-version' não estiver habilitado.

Configurações específicas do recurso opcional

Carregamento lateral

--config global.networkfunctionextension.enableLocalRegistry=

  • Essa configuração permite que artefatos sejam entregues à borda por meio da unidade de hardware.
  • Valores aceitos: false, true.
  • Valor padrão: falso.

Pod de mutação de Webhook

--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=

  • Essa configuração é um parâmetro opcional. Ele entra em reprodução somente quando CNFs (funções de rede de contêiner) são instaladas no namespace de versão correspondente.
  • Essa configuração configura um controle mais granular sobre 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 matchCondition referenciada implica que os pods que estão sendo aceitos no namespace do kube-system serão alterados somente se tiverem pelo menos um dos seguintes rótulos: app == "commissioning", app == "descheduler" ou name == "cert-export". Caso contrário, eles não serão alterados e continuarão a ser extraídos da origem original, de acordo com o gráfico helm de CNF/Component/Application.

  • Valor aceito: qualquer expressão CEL válida.
  • Esse parâmetro pode ser definido ou atualizado durante a instalação ou atualização da extensão NF (função de rede).
  • Essa condição só entra em jogo quando o CNF/Component/Application está sendo instalado no namespace de acordo com as regras e namespaceSelectors. Se houver mais pods sendo gerados nesse namespace, essa condição será aplicada.

Registro do 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: falso.

--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=

  • Essa configuração provisiona o registro de cluster no modo de alta disponibilidade se o registro de cluster estiver habilitado.
  • O valor padrão é verdadeiro e usa o volume compartilhado nexus do NAKS (Serviço de Kubernetes do Nexus) na recomendação do AKS definido como false.
  • Valores aceitos: true, false.
  • Valor padrão: true.

--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=

  • Essa configuração provisiona os pods do registro de 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=

  • Essa configuração provisiona os pods do webhooks 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.
  • Essa configuração só pode ser habilitada quando global.networkfunctionextension.enableClusterRegistry=true.
  • Valores aceitos: false, true.
  • Valor padrão: falso.

--config global.networkfunctionextension.clusterRegistry.storageClassName=

  • Essa configuração deve ser fornecida quando global.networkfunctionextension.enableClusterRegistry=true.
  • NetworkFunctionExtension provisiona um PVC para artefatos de cache locais 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 (ASE): managed-premium
  • Valor padrão: nexus-shared.

--config global.networkfunctionextension.clusterRegistry.storageSize=

  • Essa configuração deve ser fornecida quando global.networkfunctionextension.enableClusterRegistry=true.
  • Essa configuração configura o tamanho que reservamos para o registro de cluster.
  • Essa configuração usa a unidade como Gi e Ti para dimensionamento.
  • Valor padrão: 100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • Essa configuração deve ser fornecida como uma programação no formato crontab padrão do Unix.
  • Essa configuração especificada como uma cadeia de caracteres vazia desabilita o trabalho agendado, permitindo que os clientes optem por não executar a 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 limite percentual para acionar o processo de coleta de lixo do registro do cluster.
  • Essa configuração aciona o processo de coleta de lixo quando o uso do registro do cluster excede esse valor.
  • Valor padrão: 0.

Observação

  • Ao gerenciar um cluster NAKS com AOSM, os valores de parâmetro padrão habilitam a HA (alta disponibilidade) como a configuração recomendada.
  • Ao gerenciar um cluster AKS com AOSM, é necessário desabilitar a alta disponibilidade (HA) utilizando 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

Atualizar a extensão de função de rede

O comando da CLI do Azure 'az k8s-extension update' é executado para atualizar a extensão NFO.

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 a extensão de função de rede

O comando da CLI do Azure 'az k8s-extension delete' é executado para excluir a extensão NFO.

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 de função de rede 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 de função de rede com 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 de função de rede com o 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 de função de rede com o registro de 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 de função de rede com o 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 de função de rede 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 de função de rede 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 de função de rede 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