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