• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Escale automaticamente sua infraestrutura com Kubernetes

A preparação para um evento de pico de demanda requer tempo: você precisa estabelecer sua linha de base, avaliar seus acordos de nível de serviço e alinhar todas as suas equipes em torno dos mesmos dados. O dimensionamento da sua infraestrutura tem considerações semelhantes, mas também envolve a projeção das necessidades do sistema em relação aos custos. Como você equilibra os dois sem sacrificar o desempenho? Onde está o limite para ser bom o suficiente?

Uma solução é o escalonamento automático de pod horizontal (HPA), que é construído com nossa integração do Kubernetes com o Pixie. Depois de configurar o HPA, seu cluster do Kubernetes aloca automaticamente mais pod quando a demanda atinge o pico e, em seguida, desaloca quando a demanda cai. Isso permite que você evite preocupações com custos ao antecipar a demanda.

Diagram demonstrating how HPA interacts with New Relic at a high level.

O tutorial pressupõe que você esteja usando cluster do Kubernetes. Para configurar o HPA, você precisará de:

  • Um cluster do Kubernetes executando uma versão suportada.

  • Seu usuário do New Relic

  • Nenhum outro adaptador métrico externo instalado no cluster

Objetivos

Este tutorial orienta você na configuração de um ambiente de demonstração para HPA. Você irá:

  • Instale a integração do New Relic Kubernetes
  • Configure um ambiente de exemplo para testar o escalonamento automático

Encaminhar métrica para Kubernetes

Clone nosso repositório de laboratório New Relic Pixie

Clone o seguinte repositório do Github:

bash
$
git clone https://github.com/newrelic-experimental/pixie-lab-materials
$
​​cd pixie-lab-materials/main
$
./setup.sh

O script setup.sh gera um novo cluster minikube usando o driver de hiperkit compatível com Pixie. Em seguida, ele configura a memória da rede e a CPU para desempenho ideal com o Pixie e cria todos os pods e serviços que compõem o aplicativo de demonstração.

Em uma nova janela do terminal, abra um túnel minikube:

bash
$
minikube tunnel -p minikube-pixie-lab

Você deve ter dois terminais:

  • Seu túnel, que permanece aberto para acessar seu aplicativo de demonstração.
  • Um lugar para executar comandos para o tutorial.

Instale a integração do Kubernetes com Pixie

Siga nossa instalação guiada para instalar a integração do New Relic Kubernetes. Isso conecta o New Relic ao seu cluster do Kubernetes. Tenha certeza de:

  • Marque Instant service-level insights, Full-body requests e Application profiles through Pixie para ativar o Pixie.

  • Mantenha todos os outros itens marcados por padrão

    Depois de clicar em continuar, copie e cole esse comando em seu ambiente de desenvolvimento.

Instale New Relic Metrics Adapter

Para instalar o adaptador métrico New Relic, use o gráfico do Helm newrelic-k8s-metrics-adapter . Se você usou o nri-bundle-chart para implantar qualquer componente do New Relic Kubernetes, você terá acesso a este gráfico do Helm.

bash
$
helm upgrade --install newrelic newrelic/nri-bundle \
>
--namespace newrelic --create-namespace --reuse-values \
>
--set metrics-adapter.enabled=true \
>
--set newrelic-k8s-metrics-adapter.personalAPIKey=YOUR_NEW_RELIC_PERSONAL_API_KEY \
>
--set newrelic-k8s-metrics-adapter.config.accountID=YOUR_NEW_RELIC_ACCOUNT_ID \
>
--set newrelic-k8s-metrics-adapter.config.externalMetrics.manipulate_average_requests.query="FROM Metric SELECT average(http.server.duration) WHERE instrumentation.provider='pixie'"

Aqui está o que esses sinalizadores fazem:

  • metrics-adapter.enabled: Define como true para instalar o gráfico do adaptador métrico

  • newrelic-k8s-metrics-adapter.personalAPIKey: define sua chave de API do New Relic.

  • newrelic-k8s-metrics-adapter.accountID: O ID da conta que encaminha a métrica.

  • newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query: adiciona uma nova métrica externa com as seguintes informações:

    • external_metric_name: o nome da métrica.
    • query: a consulta NRQL base da métrica.

Confirme se sua consulta NRQL está correta

Você deve testar sua consulta antes de enviar a métrica para o escalonador automático da New Relic. Vá para one.newrelic.com > Query your Data e copie e cole a seguinte consulta NRQL:

FROM Metric SELECT average(http.server.duration) WHERE instrumentation.provider='pixie'

Configure seu escalonador automático

No diretório pixie-lab-materials/main/kube , crie um novo arquivo chamado hpa.yml. O adaptador métrico New Relic envia dados para o gerenciador do controlador, que é definido pela definição HPA neste arquivo YAML.

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta2
metadata:
name: manipulate-scaler
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: manipulation-service
minReplicas: 1
maxReplicas: 10
metrics:
- type: External
external:
metric:
name: manipulate_average_requests
target:
type: Value
value: 100

Aplique o novo arquivo YAML executando:

bash
$
cd pixie-lab-materials/main/kube
$
kubectl apply -f hpa.yaml

Verifique seu trabalho: adicione carga para acionar o escalonamento automático

  1. Navegue até a implantação do seu site com kubectl get services.
  2. Abra o EXTERNAL-IP do seu serviço de front-end no seu browser.
  3. Instale hey e Go v1.17 com brew install hey.
  4. Envie a solicitação GET para EXTERNAL-IP com hey -n 10 -c 2 -m GET http://<EXTERNAL-IP>.
  5. Observe o escalonamento automático do HPA com watch kubnectl get hpa.

Você configurou o HPA com êxito se o pod dimensionar automaticamente o número de réplicas à medida que o tempo médio de solicitação HTTP aumenta. Você pode ajustar a configuração de seus próprios serviços para que o New Relic e o HPA sejam dimensionados automaticamente conforme necessário.

1Get started

Obtenha dados sobre sua arquitetura com APM e agente de infraestrutura

2Create service levels for gameday

Crie um nível de serviço informado pela sua baseline

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.