Partilhar via


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

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

Descrição geral

Esses comandos são executados depois de tornar o cluster NAKS pronto para a extensão do complemento e presumem a instalação prévia da CLI do Azure e a autenticação na assinatura de destino.

Criar 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 Kubernetes.

--cluster-type -t

  • Especifique clusters Arc ou clusters gerenciados do serviço kubernetes do Azure (AKS) ou dispositivos Arc ou provisionedClusters.
  • Valores aceitos: connectedClusters.

--extension-type

  • Nome do tipo de extensão.
  • Valores aceitos: Microsoft.Azure.HybridNetwork.

--name -n

  • Nome da instância de extensão.

--resource-group -g

  • o 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

  • Esta configuração deve ser fornecida.

Parâmetros Opcionais

--auto-upgrade

  • Atualize automaticamente a versão secundária 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 aceites: pré-visualização, 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 de recursos opcionais

Carregamento lateral

--config global.networkfunctionextension.enableLocalRegistry=

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

Webhook Mutante 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 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\"))))"
    

O matchCondition referenciado implica que os pods que estão sendo aceitos no namespace kube-system são mutados somente se tiverem pelo menos um dos seguintes rótulos: app == "commissioning", app == "descheduler" ou name == "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 de leme de CNF/Componente/Aplicativo.

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

Registo 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 Predefinido: 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 é true e usa o volume compartilhado do nexus Azure kubernetes service (NAKS) na recomendação do AKS é definido false.
  • Valores aceites: verdadeiro, falso.
  • Valor padrão: true.

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

  • Essa configuração provisiona os pods de registro do cluster com dimensionamento automático horizontal.
  • Valores aceites: verdadeiro, falso.
  • Valor padrão: true.

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

  • Essa configuração fornece várias réplicas do webhook para alta disponibilidade.
  • Valores aceites: verdadeiro, falso.
  • Valor padrão: true.

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

  • Esta configuração provisiona os pods webhook com dimensionamento automático horizontal.
  • Valores aceites: verdadeiro, falso.
  • Valor padrão: 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 leme.
  • Essa configuração só pode ser habilitada quando global.networkfunctionextension.enableClusterRegistry=true.
  • Valores aceitos: false, true.
  • Valor Predefinido: 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 local dessa classe de armazenamento.
  • Valores específicos da plataforma
    • AKS: gerenciado-csi
    • NAKS (padrão): nexus-shared
    • NAKS(Não-HA): nexus-volume
    • Azure Stack Edge (ASE): gerenciado-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 do cluster.
  • Esta configuração usa unidade como Gi e Ti para dimensionamento.
  • Valor padrão: 100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • Esta configuração deve ser fornecida como um cronograma no formato padrão Unix crontab.
  • Essa configuração especificada como uma cadeia de caracteres vazia desabilita o trabalho agendado, permitindo que os clientes desativem a execução da coleta de lixo.
  • Valor padrão: "0 0 * * *" -- Executa o trabalho uma vez todos os dias.

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=

  • Essa configuração especifica o valor de limite de precente para disparar o processo de coleta de lixo do registro de cluster.
  • Essa configuração dispara o processo de coleta de lixo quando o uso do registro do cluster excede esse valor.
  • Valor padrão: 0.

Nota

  • Ao gerenciar um cluster NAKS com AOSM, os valores de parâmetro padrão habilitam HA como a configuração recomendada.
  • Ao gerenciar um cluster AKS com AOSM, a HA deve ser desabilitada 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

Atualizar 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 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 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 de função de rede com o recurso de registro de cluster (modo de carregamento lento padrão) ativado 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 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 de função de rede 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 de função de rede 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 de função de rede 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 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