No início deste ano, apresentamos o NGINX Management Suite como nosso novo plano de controle para soluções de software NGINX, permitindo que você configure, dimensione, proteja e monitore aplicativos de usuário e APIs REST no plano de dados NGINX a partir de um único painel de controle.
O NGINX Management Suite tem um design modular: em seu núcleo está o módulo Instance Manager , que fornece rastreamento, configuração e visibilidade para toda a sua frota de instâncias NGINX Open Source e NGINX Plus. No momento em que este artigo foi escrito, o API Connectivity Manager era o outro módulo disponível, usado para gerenciar e orquestrar o NGINX Plus em execução como um gateway de API.
O NGINX Management Suite pode ser executado em bare metal, como uma máquina virtual Linux ou em contêiner. A maneira recomendada de implantá-lo no Kubernetes é usar o gráfico Helm que fornecemos, mas, para fins específicos, pode ser necessário criar sua própria imagem do Docker e gerenciar seu ciclo de vida por meio de um pipeline de CI/CD personalizado que não depende necessariamente do Helm.
[ Editor – Esta postagem foi atualizada em fevereiro de 2023 para automatizar totalmente o processo de construção da imagem do Docker.]
Fornecemos um repositório GitHub dos recursos necessários para criar uma imagem do Docker para o NGINX Management Suite, com suporte para estas versões do Instance Manager e do API Connectivity Manager:
Para construir a imagem do Docker, você precisa:
Para executar a imagem do Docker, você precisa:
kubectl
com acesso ao cluster KubernetesSiga estas instruções para criar a imagem do Docker.
Observação: Fizemos todos os esforços para representar com precisão a interface do usuário do NGINX Management Suite no momento da publicação, mas a interface do usuário está sujeita a alterações. Use estas instruções como referência e adapte-as à interface do usuário atual conforme necessário.
Clone o repositório GitHub:
$ git clone https://github.com/nginxinc/NGINX-Demos Clonando em 'NGINX-Demos'... remoto: Enumerando objetos: 215, feito. remoto: Contando objetos: 100% (215/215), concluído. remoto: Comprimindo objetos: 100% (137/137), concluído. remoto: Total 215 (delta 108), reutilizado 171 (delta 64), pacote-reutilizado 0 Recebendo objetos: 100% (215/215), 2,02 MiB | 1,04 MiB/s, concluído.
Resolução de deltas: 100% (108/108), concluído.
Mude para o diretório de construção:
$ cd NGINX-Demos/nginx-nms-docker/
Execute docker
ps
para verificar se o Docker está em execução e, em seguida, execute o script buildNIM.sh para criar a imagem do Docker. A opção ‑i
define o modo de compilação automatizado, ‑C
e ‑K
são opções obrigatórias que nomeiam o certificado e a chave do NGINX Management Suite, respectivamente, e a opção ‑t
especifica o local e o nome do registro privado para o qual a imagem é enviada.
$ ./scripts/buildNIM.sh -i -C nginx-repo.crt -K nginx-repo.key -t registry.ff.lan:31005/nginx-nms:2.5.1 ==> Construindo imagem do docker do NGINX Management Suite Enviando contexto de construção para o daemon do Docker 92,19 MB Etapa 1/18: DE ubuntu:22.04 ---> a8780b506fa4 Etapa 2/18: ARG NIM_DEBFILE ---> Executando em 0f2354280c34 Removendo o contêiner intermediário 0f2354280c34 [...] ---> 0588a050c852 Etapa 18/18: CMD /deployment/startNIM.sh ---> Executando em d0cc5466a43d Removendo contêiner intermediário d0cc5466a43d ---> 25117ec0410a Construído com sucesso 25117ec0410a Registry.ff.lan:31005/nginx-nms:2.5.1 marcado com sucesso O push se refere ao repositório [registry.ff.lan:31005/nginx-nms] 9c4918474e3a: Enviado 42543d044dbb: Empurrado 1621b2ec0a5e: Empurrado c6a464fc6a79: Empurrado 75fa1d3c61bb: Empurrado 3501fcf5dbd8: Enviado d4a221057e67: Enviado 9ad05eafed57: Empurrado f4a670ac65b6: Enviado 2.5.1: resumo: sha256:9a70cfdb63b71dc31ef39e4f20a1420d8202c85784cb037b45dc0e884dad74c9 tamanho: 2425
Siga estas instruções para preparar o manifesto de implantação e iniciar o NGINX Management Suite no Kubernetes.
Codifique em Base64 a licença do NGINX Management Suite que você baixou na Etapa 4 da seção anterior e copie a saída para a área de transferência:
$ base64 -w0 nginx-mgmt-suite.lic TulNRS1WZXJz...
Usando seu editor favorito, abra manifests/1.nginx-nim.yaml e faça as seguintes alterações:
Na seção spec.template.spec.containers
, substitua o nome da imagem padrão ( your.registry.tld/nginx-nim2:tag
) pelo nome da imagem do Docker que você especificou com a opção ‑t
na Etapa 3 da seção anterior (no nosso caso, registry.ff.lan:31005/nginx-nms:2.5.1 ):
especificação: ...
modelo:
...
especificação:
contêineres:
- nome: nginx-nim2
imagem: your.registry.tld/nginx-nim2:tag
Na seção spec.template.spec.containers.env
, configure as credenciais de autenticação fazendo estas substituições no campo de valor
para cada nome
indicado:
NIM_USERNAME
– (Opcional) Substitua o administrador
padrão por um nome de conta de administrador.NIM_PASSWORD
– (Obrigatório) Substitua o nimadmin
padrão por uma senha forte.LICENÇA_NIM
– (Obrigatório) Substituir o padrão <ARQUIVO_DE_LICENÇA_CODIFICADO_BASE64>
com a licença codificada em base64 que você gerou na Etapa 1 acima.especificação: ...
modelo:
...
especificação:
contêineres:
...
env:
...
- nome: NIM_USERNAME
valor: admin
- nome: NIM_PASSWORD
valor: nimadmin
- nome: NIM_LICENSE
valor: "<BASE64_ENCODED_LICENSE_FILE>"
Opcionalmente, edite manifests/3.vs.yaml e personalize os nomes de host usados para acessar o NGINX Management Suite.
Execute nimDockerStart.sh para iniciar o NGINX Management Suite no seu cluster Kubernetes. Conforme indicado no rastreamento, ele é executado como o pod nginx-nim2 . O script também inicializa pods para o ClickHouse como banco de dados de back-end e o Grafana para visualização analítica. Para mais informações, consulte o README no repositório do GitHub.
$ ./scripts/nimDockerStart.sh start namespace/nginx-nim2 created ~/NGINX-NIM2-Docker/manifests/certs ~/NGINX-NIM2-Docker Gerando uma chave privada RSA .....................................+++++ .....................................+++++ gravando uma nova chave privada em 'nim2.f5.ff.lan.key' ----- secret/nim2.f5.ff.lan created configmap/clickhouse-conf created configmap/clickhouse-users created persistentvolumeclaim/pvc-clickhouse created deployment.apps/clickhouse created service/clickhouse created deployment.apps/nginx-nim2 created service/nginx-nim2 created service/nginx-nim2-grpc created persistentvolumeclaim/pvc-grafana-data created persistentvolumeclaim/pvc-grafana-log created deployment.apps/grafana created service/grafana created virtualserver.k8s.nginx.org/nim2 criado virtualserver.k8s.nginx.org/grafana criado ~/NGINX-NIM2-Docker
Verifique se três pods estão em execução:
$ kubectl get pods -n nginx-nim2 NOME PRONTO STATUS REINÍCIOS IDADE clickhouse-759b65db8c-74pn5 1/1 Em execução 0 63s grafana-95fbbf5c-jczgk 1/1 Em execução 0 63s nginx-nim2-5f54664754-lrhmn 1/1 Em execução 0 63s
Para acessar o NGINX Management Suite, navegue em um navegador até https://nim2.f5.ff.lan (ou o nome de host alternativo que você definiu na Etapa 4 da seção anterior). Faça login usando as credenciais que você definiu na Etapa 2 da seção anterior.
Para parar e remover a instância do Docker do NGINX Management Suite, execute este comando:
$ ./scripts/nimDockerStart.sh parar namespace "nginx-nim2" excluído
Para experimentar as soluções NGINX discutidas nesta postagem, inicie um teste gratuito de 30 dias hoje mesmo ou entre em contato conosco para discutir seus casos de uso:
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."