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