• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Escala automáticamente tu infraestructura con Kubernetes

Prepararse para un evento de demanda máxima requiere tiempo: debe establecer su línea de base, evaluar sus acuerdos de nivel de servicio y alinear a todos sus equipos en torno a los mismos datos. Escalar su infraestructura tiene consideraciones similares, pero también implica proyectar las necesidades del sistema frente al costo. ¿Cómo se equilibran los dos sin sacrificar el rendimiento? ¿Dónde está el umbral de lo suficientemente bueno?

Una solución es el escalado automático de pod horizontal (HPA), que se crea con nuestra integración de Kubernetes con Pixie. Una vez que haya configurado HPA, su clúster de Kubernetes asigna automáticamente más pods cuando la demanda alcanza su punto máximo y luego los desasigna cuando la demanda cae. Esto le permite evitar las preocupaciones de costos al anticipar la demanda.

El tutorial asume que estás usando clúster de Kubernetes. Para configurar HPA, necesitará:

  • Un clúster de Kubernetes que ejecuta una versión compatible.

  • Tu usuario New Relic

  • Ningún otro adaptador métrico externo instalado en el cluster

Objetivos

Este tutorial le guiará en la configuración de un entorno de demostración para HPA. Vas a:

  • Instale la integración de New Relic Kubernetes
  • Configurar un entorno de ejemplo para probar el escalado automático

Reenviar métrica a Kubernetes

Clona nuestro repositorio de laboratorio New Relic Pixie

Clona el siguiente repositorio de Github:

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

El script setup.sh activa un nuevo clúster de minikube utilizando el controlador de hiperkit compatible con Pixie. Luego configura la memoria de su red y la CPU para un rendimiento óptimo con Pixie y crea todos los pods y servicios que componen la aplicación de demostración.

En una nueva ventana de terminal, abra un túnel minikube:

bash
$
minikube tunnel -p minikube-pixie-lab

Deberías tener dos terminales:

  • Tu túnel, que permanece abierto para acceder a tu aplicación demo.
  • Un lugar para ejecutar comandos para el tutorial.

Instale la integración de Kubernetes con Pixie

Siga nuestra instalación guiada para instalar la integración de New Relic Kubernetes. Esto conecta New Relic a su clúster de Kubernetes. Asegurate que:

  • Marque Instant service-level insights, Full-body requests y Application profiles through Pixie para habilitar Pixie.

  • Mantener todos los demás elementos predeterminados marcados

    Una vez que haga clic en Continuar, copie y pegue ese comando en su entorno de desarrollo.

Instale el adaptador métrico New Relic

Para instalar el adaptador métrico New Relic, utilice la tabla de timón newrelic-k8s-metrics-adapter . Si ha utilizado nri-bundle-chart para implementar cualquier componente de New Relic Kubernetes, entonces tiene acceso a este gráfico de 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'"

Esto es lo que hacen estas banderas:

  • metrics-adapter.enabled: Se establece en true para instalar la tabla de adaptadores métricos.

  • newrelic-k8s-metrics-adapter.personalAPIKey: establece su clave de API de New Relic.

  • newrelic-k8s-metrics-adapter.accountID: El ID de la cuenta que reenvía métrica.

  • newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query: Agrega una nueva métrica externa con la siguiente información:

    • external_metric_name: el nombre de la métrica.
    • query: la consulta NRQL base para la métrica.

Confirme que su consulta NRQL sea precisa

Debes probar tu consulta antes de enviar métrica al escalador automático de New Relic. Vaya a one.newrelic.com > Query your Data, luego copie y pegue la siguiente consulta NRQL:

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

Configura tu escalador automático

Desde el directorio pixie-lab-materials/main/kube , cree un nuevo archivo llamado hpa.yml. El adaptador métrico New Relic envía datos al administrador del controlador, que está definido por la definición HPA en este archivo 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 el nuevo archivo YAML ejecutando:

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

Verifique su trabajo: agregue carga para activar el escalado automático

  1. Navegue a su sitio implementando con kubectl get services.
  2. Abra el EXTERNAL-IP desde su servicio frontend en su browser.
  3. Instale hey y Go v1.17 con brew install hey.
  4. Envía solicitud GET al EXTERNAL-IP con hey -n 10 -c 2 -m GET http://<EXTERNAL-IP>.
  5. Mire sus llamadas automáticas de HPA con watch kubnectl get hpa.

Ha configurado HPA correctamente si el pod escala automáticamente la cantidad de réplicas a medida que aumenta el tiempo promedio de solicitud HTTP. Puede ajustar la configuración de sus propios servicios para que New Relic y HPA se escalen automáticamente según sea necesario.

1Get started

Obtén datos sobre tu arquitectura con APM y agente de infraestructura

2Create service levels for gameday

Cree un nivel de servicio informado por su línea de base

Copyright © 2024 New Relic Inc.

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