Share via


Guia de início rápido: publicar o contêiner Nginx como função de rede conteinerizada (CNF)

Este guia de início rápido descreve como usar a extensão CLI do az aosm Azure para criar e publicar uma definição básica de função de rede. Sua finalidade é demonstrar o fluxo de trabalho dos recursos do Publisher Azure Operator Service Manager (AOSM). Os conceitos básicos apresentados aqui destinam-se a preparar os usuários para construir serviços mais interessantes.

Pré-requisitos

  • É necessária uma conta do Azure com uma subscrição ativa. Se você não tiver uma assinatura do Azure, siga as instruções aqui Comece grátis para criar uma conta antes de começar.

  • As funções de Colaborador e AcrPush nesta assinatura para criar um Grupo de Recursos ou um Grupo de Recursos existente onde você tem a função de Colaborador.

  • Conclua o Guia de início rápido: conclua os pré-requisitos para implantar uma função de rede conteinerizada no Gerenciador de Serviços do Operador do Azure.

Criar arquivo de entrada

Crie um arquivo de entrada para publicar a Definição de Função de Rede. Execute o seguinte comando para gerar o arquivo de configuração de entrada para a definição de função de rede (NFD).

az aosm nfd generate-config --definition-type cnf

A execução do comando anterior gera um arquivo input.json.

Nota

Edite o arquivo input.json. Substitua-o pelos valores mostrados no exemplo a seguir. Salve o arquivo como input-cnf-nfd.json.

Nota

Para este início rápido, usamos source_local_docker_image. Para outros CNFs que você pode fazer no futuro, você tem a opção de usar uma referência a um Registro de Contêiner do Azure existente que contém as imagens para seu CNF. Atualmente, apenas um ACR e namespace são suportados por CNF. As imagens a serem copiadas deste ACR são preenchidas automaticamente com base no esquema do pacote helm. Para usar essa opção no futuro, preencha source_registry e, opcionalmente source_registry_namespace , no arquivo input.json. Você deve ter permissões Reader/AcrPull neste ACR.

Aqui está o exemplo de arquivo input-cnf-nfd.json:

{
    "publisher_name": "nginx-publisher",
    "publisher_resource_group_name": "nginx-publisher-rg",
    "nf_name": "nginx",
    "version": "1.0.0",
    "acr_artifact_store_name": "nginx-nsd-acr",
    "location": "uksouth",
    "images": {
        "source_local_docker_image": "nginx:stable"
    },
    "helm_packages": [
        {
            "name": "nginxdemo",
            "path_to_chart": "nginxdemo-0.1.0.tgz",
            "path_to_mappings": "",
            "depends_on": []
        }
    ]
}
  • publisher_name - Nome do recurso do Publisher para o qual pretende publicar a sua definição. Criado se ainda não existir.
  • publisher_resource_group_name - Grupo de recursos para o recurso Publicador. Criado se ainda não existir.
  • acr_artifact_store_name - Nome do recurso ACR Artifact Store. Criado se ainda não existir.
  • location - O local do Azure a ser usado ao criar recursos.
  • nf_name - O nome da definição do novo alimento.
  • version - A versão da definição de NF em formato A.B.C.
  • Imagens:
    • source_local_docker_image - Opcional. O nome da imagem do docker de origem da sua máquina local. Para casos de uso limitados, em que o CNF requer apenas uma única imagem docker que existe no repositório docker local.
  • helm_packages:
    • name - O nome do pacote Helm.
    • path_to_chart - O caminho do arquivo do Helm Chart no disco local. Aceita .tgz, .tar ou .tar.gz. Use o separador de arquivos de barra (/) do Linux mesmo se estiver sendo executado no Windows. O caminho deve ser um caminho absoluto ou o caminho relativo ao local do input.json arquivo.
    • path_to_mappings - O caminho do arquivo (absoluto ou relativo ainput.json) dos mapeamentos de valor no disco local onde os valores escolhidos são substituídos por espaços reservados deploymentParameter. Aceita .yaml ou .yml. Se deixado como uma cadeia de caracteres em branco, um arquivo de mapeamentos de valor é gerado com cada valor mapeado para um parâmetro de implantação. Use uma cadeia de caracteres em branco e --interactive no comando build para escolher interativamente quais valores mapear.
    • depends_on - Nomes dos pacotes Helm dos quais este pacote depende. Deixe como uma matriz vazia se não houver dependências.

Criar a definição de função de rede (NFD)

Para construir a definição de função de rede (NFD), inicie o processo de compilação no modo interativo. Esse modo permite que você exponha seletivamente valores de values.yaml como deploymentParameters.

az aosm nfd build -f input-cnf-nfd.json --definition-type cnf --interactive

Durante o processo interativo, você pode responder com 'n' (não) para todas as opções, exceto as duas seguintes:

  • Para expor o parâmetro serviceAccount_create, responda com 'y' (sim)
  • Para expor o parâmetro service_port, responda com 'y' (sim)

Quando a compilação estiver concluída, examine os arquivos gerados para obter uma melhor compreensão da estrutura NFD (Network Function Definition). Estes ficheiros são criados:

Diretório/Arquivo Description
configMapeamentos Mapeia os parâmetros de implantação para a Versão de Definição de Função de Rede (NFDV) para os valores necessários para o gráfico de leme.
generatedValuesMappings A saída yaml do modo interativo que criou configMappings. Edite e execute novamente o comando, se necessário.
Esquemas Define os parâmetros de implantação necessários para criar uma Função de Rede (NF) a partir desta Versão de Definição de Função de Rede (NFDV).
cnfartifactmanifests.bicep Modelo de bíceps para criar o manifesto do artefato.
cnfdefinition.bicep Modelo Bicep para criar a própria Versão de Definição de Função de Rede (NFDV).

Se foram cometidos erros durante as suas escolhas interativas, existem duas opções para os corrigir:

  1. Execute novamente o comando com as seleções corretas.
  2. Ajuste manualmente os mapeamentos de valor gerado dentro generatedValuesMappings da pasta. Em seguida, edite o path_to_mappings_file in input.json para fazer referência ao caminho do arquivo modificado.

Publicar a definição de função de rede e carregar artefatos

Execute o seguinte comando para publicar a definição de função de rede (NFD) e carregar os artefatos associados:

az aosm nfd publish -f input-cnf-nfd.json --definition-type cnf

Quando o comando for concluído, inspecione os recursos dentro do Grupo de Recursos do Publisher para revisar os componentes e artefatos criados.

Próximos passos