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.
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.
Um Grupo de Recursos existente onde você tem a função de Colaborador ou a função de Colaborador sobre esta assinatura para que a extensão da CLI do AOSM possa criar o grupo de recursos.
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 cnf-input.jsonc.
Nota
Edite o arquivo cnf-input.jsonc. Substitua-o pelos valores mostrados no exemplo a seguir. Salve o arquivo como input-cnf-nfd.jsonc.
Se você estiver usando um grupo de recursos existente, altere o publisher_resource_group_name
campo para correspondê-lo.
Gorjeta
Você pode usar vários registros de contêiner como fontes para suas imagens na CLI do AOSM. As imagens a serem copiadas desses registros são selecionadas automaticamente com base no esquema do pacote de leme. Os registros de origem são configurados na image_sources
lista do arquivo cnf-input.jsonc.
Ao usar ACRs, você deve ter as funções Reader e AcrPull no ACR. Ao usar registros não-ACR, você deve executar docker login
para autenticar com cada registro privado antes de executar o az aosm nfd build
comando.
Neste guia de início rápido, usamos docker.io
como o registro de origem da imagem. Este é um registo público e não requer autenticação.
Aqui está o exemplo de arquivo input-cnf-nfd.jsonc:
{
// Azure location to use when creating resources e.g uksouth
"location": "uksouth",
// Name of the Publisher resource you want your definition published to.
// Will be created if it does not exist.
"publisher_name": "nginx-publisher",
// Resource group for the Publisher resource.
// Will be created if it does not exist.
"publisher_resource_group_name": "nginx-publisher-rg",
// Name of the ACR Artifact Store resource.
// Will be created if it does not exist.
"acr_artifact_store_name": "nginx-nsd-acr",
// Name of NF definition.
"nf_name": "nginx",
// Version of the NF definition in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
//
"image_sources": ["docker.io"],
// List of Helm packages to be included in the CNF.
"helm_packages": [
{
"name": "nginxdemo",
"path_to_chart": "nginxdemo-0.3.0.tgz",
"default_values": ""
}
]
}
- publisher_name - Nome do recurso 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 do Repositório de Artefatos do Registro de Contêiner do Azure (ACR). 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.
- image_sources - lista dos registos dos quais extrair as imagens.
- 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
cnf-input.jsonc
arquivo. - default_values - O caminho do arquivo (absoluto ou relativo a
cnf-input.jsonc
) do arquivo de valores YAML no disco local que é usado em vez do arquivo values.yaml presente no gráfico de leme. - 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.
az aosm nfd build -f input-cnf-nfd.jsonc --definition-type cnf
A extensão Az CLI AOSM gera um diretório chamado cnf-cli-output
. Este diretório contém os arquivos BICEP que definem os recursos do AOSM necessários para publicar um NFDV e carregar as imagens necessárias para implantá-lo no armazenamento gerenciado pelo AOSM. Examine os arquivos gerados para obter uma melhor compreensão da estrutura de definição de função de rede (NFD).
Diretório/Arquivo | Description |
---|---|
nfDefinição/deployParameters.json | Define o esquema para 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). |
nfDefinição/nginxdemo-mappings.json | 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. |
nfDefinition/deploy.bicep | Modelo Bicep para criar a própria Versão de Definição de Função de Rede (NFDV). |
artefactos/artifacts.json | Uma lista dos pacotes de leme e das imagens de contentores exigidas pelo NF. |
artifactManifest/deploy.bicep | Modelo de bíceps para criar o manifesto do artefato. |
base/deploy.bicep | Modelo de bíceps para criar o editor, o grupo de definição de função de rede e os recursos de armazenamento de artefatos |
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:
Nota
Se você estiver usando o Windows, deverá ter o Docker Desktop em execução durante a etapa de publicação.
Nota
Os nomes dos editores devem ser exclusivos dentro de uma região. É bastante provável que o 'nginx-publisher' definido no arquivo de configuração de exemplo já exista.
Se você receber um erro dizendo "Um recurso de editor privado com o nome 'nginx-publisher' já existe na região fornecida", edite o publisher_name
campo no arquivo de configuração para que ele seja exclusivo (por exemplo, adicione um sufixo de cadeia de caracteres aleatório), execute novamente o build
comando (acima) e, em seguida, execute novamente este publish
comando.
Se você continuar a criar um design de serviço de rede, precisará usar esse novo nome de resource_element_templates
editor na matriz.
az aosm nfd publish -b cnf-cli-output --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.