Athrun Data Intelligence


A medida que las organizaciones escaman su Servicio de Kubernetes de Amazon Elastic (Amazon EKS) implementaciones, los administradores de la plataforma enfrentan desafíos crecientes para tener la llave de la despensa eficientemente los grupos de múltiples inquilinos. Tareas como investigar fallas de POD, tocar las limitaciones de posibles y resolver la configuración errónea pueden consumir un tiempo y esfuerzo significativos. En circunstancia de ajar valiosas horas de ingeniería, analizando los registros manualmente, el seguimiento de las métricas e implementar soluciones, los equipos deben centrarse en impulsar la innovación. Ahora, con el poder de IA generativapuede trocar sus operaciones de Kubernetes. Al implementar el monitoreo inteligente del clúster, el examen de patrones y la remediación automatizada, puede sujetar drásticamente los dos el tiempo medio para identificar (MTTI) y el tiempo medio de resolver (MTTR) para problemas comunes de clúster.

En AWS re: Invent 2024, anunciamos el múltiple capacidad de colaboración para Roca matriz de Amazon (avance). Con la colaboración de múltiples agentes, puede construir, implementar y tener la llave de la despensa múltiples agentes de IA que trabajan juntos en tareas complejas de varios pasos que requieren habilidades especializadas. Oportuno a que la resolución de problemas de un clúster EKS implica derivar ideas de múltiples señales de observabilidad y aplicar correcciones utilizando una tubería de integración e implementación continua (CI/CD), un flujo de trabajo de múltiples agentes puede ayudar a un equipo de operaciones a optimizar la gobierno de los grupos de EKS. El agente de Workflow Manager puede integrarse con agentes individuales que interactúan con señales de observabilidad individuales y un flujo de trabajo de CI/CD para orquestar y realizar tareas basadas en la solicitud del beneficiario.

En esta publicación, demostramos cómo orquestar múltiples agentes de roca matriz de Amazon para crear un sofisticado sistema de alternativa de problemas de Amazon EKS. Al permitir la colaboración entre agentes especializados (conocimientos derivados de K8SGPT y realizar acciones a través del entorno de ArgoCD, puede construir una automatización integral que identifique, analice y resuelva problemas de clúster con una intervención humana mínima.

Descripción universal de la alternativa

La construcción consta de los siguientes componentes centrales:

  • Amazon Bedrock Collaborator Agent: comparsa el flujo de trabajo y mantiene el contexto mientras enruta las indicaciones del beneficiario a agentes especializados, administrando operaciones de varios pasos e interacciones de agentes
  • Amazon Bedrock Agent para K8SGPT: evalúa los eventos de clúster y POD a través de la API de examen de K8SGPT para problemas de seguridad, configuraciones erróneas y problemas de rendimiento, proporcionando sugerencias de remediación en lengua natural
  • Amazon Bedrock Agent para ArgoCD: administra la remediación basada en GITOPS a través de ArgoCD, manejo de reversiones, optimización de posibles y actualizaciones de configuración

El posterior diagrama ilustra la construcción de la alternativa.

Diagrama de arquitectura

Requisitos previos

Necesita tener los siguientes requisitos previos:

Configure el clúster de Amazon EKS con K8SGPT y ArgoCd

Comenzamos con la instalación y la configuración del cirujano K8SGPT y el regulador ARGOCD en el clúster EKS.

El cirujano K8SGPT ayudará a habilitar el examen con IA y la resolución de problemas de problemas de clúster. Por ejemplo, puede detectar y sugerir automáticamente correcciones para implementaciones mal configuradas, como identificar y resolver problemas de restricción de posibles en POD.

ARGOCD es una utensilio de entrega continua de GITOPS declarativa para Kubernetes que automatiza la implementación de aplicaciones manteniendo el estado de aplicación deseado en sincronización con lo que se define en un repositorio GIT.

El agente de Bedrock de Amazon sirve como el tomador de decisiones inteligente en nuestra construcción, analizando los problemas de clúster detectados por K8SGPT. Posteriormente de identificar la causa raíz, el agente comparsa las acciones correctivas a través del motor GITOPS de ArgoCD. Esta poderosa integración significa que cuando se detectan problemas (ya sea una implementación mal configurada, restricciones de posibles o problemas de escalera), el agente puede integrarse automáticamente con ArgoCD para proporcionar las soluciones necesarias. Argocd luego recoge estos cambios y los sincroniza con su clúster EKS, creando una infraestructura verdaderamente autocuradora.

  1. Cree los espacios de nombres necesarios en Amazon EKS:
    kubectl create ns helm-guestbook
    kubectl create ns k8sgpt-operator-system
  2. Agregue el repositorio de timón K8SGPT e instale el cirujano:
    helm repo add k8sgpt https://charts.k8sgpt.ai/
    helm repo update
    helm install k8sgpt-operator k8sgpt/k8sgpt-operator 
      --namespace k8sgpt-operator-system
  3. Puede confirmar la instalación ingresando el posterior comando:
    kubectl get pods -n k8sgpt-operator-system
    
    NAME                                                          READY   STATUS    RESTARTS  AGE
    release-k8sgpt-operator-controller-manager-5b749ffd7f-7sgnd   2/2     Running   0         1d
    

Posteriormente de implementar el cirujano, puede configurar un arbitrio K8SGPT. Esta definición de posibles personalizada (CRD) tendrá el maniquí de lengua excelso (LLM) Configuración que ayudará en el examen con IA y la resolución de problemas de problemas de clúster. K8SGPT admite varios backends para ayudar en el examen con IA. Para esta publicación, usamos Amazon Bedrock como Backend y Claude V3 de Anthrope como el LLM.

  1. Debe crear la identidad POD para proporcionar el acercamiento al clúster EKS a otros servicios de AWS con Amazon Bedrock:
    eksctl create podidentityassociation  --cluster PetSite --namespace k8sgpt-operator-system --service-account-name k8sgpt  --role-name k8sgpt-app-eks-pod-identity-role --permission-policy-arns arn:aws:iam::aws:policy/AmazonBedrockFullAccess  --region $AWS_REGION
  2. Configurar el K8SGPT CRD:
    cat << EOF > k8sgpt.yaml
    apiVersion: core.k8sgpt.ai/v1alpha1
    kind: K8sGPT
    metadata:
      name: k8sgpt-bedrock
      namespace: k8sgpt-operator-system
    spec:
      ai:
        enabled: true
        model: anthropic.claude-v3
        backend: amazonbedrock
        region: us-east-1
        credentials:
          secretRef:
            name: k8sgpt-secret
            namespace: k8sgpt-operator-system
      noCache: false
      repository: ghcr.io/k8sgpt-ai/k8sgpt
      version: v0.3.48
    EOF
    
    kubectl apply -f k8sgpt.yaml
    
  3. Valide la configuración para confirmar que la vaina K8SGPT-Bedrock se ejecuta correctamente:
    kubectl get pods -n k8sgpt-operator-system
    NAME                                                          READY   STATUS    RESTARTS      AGE
    k8sgpt-bedrock-5b655cbb9b-sn897                               1/1     Running   9 (22d ago)   22d
    release-k8sgpt-operator-controller-manager-5b749ffd7f-7sgnd   2/2     Running   3 (10h ago)   22d
    
  4. Ahora puede configurar el regulador ArgoCD:
    helm repo add argo https://argoproj.github.io/argo-helm
    helm repo update
    kubectl create namespace argocd
    helm install argocd argo/argo-cd 
      --namespace argocd 
      --create-namespace
  5. Verifique la instalación de ArgoCD:
    kubectl get pods -n argocd
    NAME                                                READY   STATUS    RESTARTS   AGE
    argocd-application-controller-0                     1/1     Running   0          43d
    argocd-applicationset-controller-5c787df94f-7jpvp   1/1     Running   0          43d
    argocd-dex-server-55d5769f46-58dwx                  1/1     Running   0          43d
    argocd-notifications-controller-7ccbd7fb6-9pptz     1/1     Running   0          43d
    argocd-redis-587d59bbc-rndkp                        1/1     Running   0          43d
    argocd-repo-server-76f6c7686b-rhjkg                 1/1     Running   0          43d
    argocd-server-64fcc786c-bd2t8                       1/1     Running   0          43d
  6. Parche el servicio ArgoCD para tener un equilibrador de carga extranjero:
    kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
  7. Ahora puede alcanzar a la interfaz de beneficiario de ArgoCD con el posterior punto final del equilibrador de carga y las credenciales para el beneficiario administrador:
    kubectl get svc argocd-server -n argocd
    NAME            TYPE           CLUSTER-IP       EXTERNAL-IP                                                              PORT(S)                      AGE
    argocd-server   LoadBalancer   10.100.168.229   a91a6fd4292ed420d92a1a5c748f43bc-653186012.us-east-1.elb.amazonaws.com   80:32334/TCP,443:32261/TCP   43d
  8. Recupere las credenciales para la UI de ArgoCd:
    export argocdpassword=`kubectl -n argocd get secret argocd-initial-admin-secret 
    -o jsonpath="{.data.password}" | base64 -d`
    
    echo ArgoCD admin password - $argocdpassword
  9. Empuje las credenciales a AWS Secrets Manager:
    aws secretsmanager create-secret 
    --name argocdcreds 
    --description "Credentials for argocd" 
    --secret-string "{"USERNAME":"admin","PASSWORD":"$argocdpassword"}"
  10. Configurar una aplicación de muestra en ArgoCD:
    cat << EOF > argocd-application.yaml
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
    name: helm-guestbook
    namespace: argocd
    spec:
    project: default
    source:
    repoURL: https://github.com/awsvikram/argocd-example-apps
    targetRevision: HEAD
    path: helm-guestbook
    destination:
    server: https://kubernetes.default.svc
    namespace: helm-guestbook
    syncPolicy:
    automated:
    prune: true
    selfHeal: true
    EOF
  11. Aplique la configuración y verifíquela desde la interfaz de beneficiario de ArgoCD iniciando sesión como beneficiario burócrata:
    kubectl apply -f argocd-application.yaml

    Aplicación Argocd

  12. K8SGPT tarda un tiempo en analizar las cápsulas recién creadas. Para hacer eso inmediato, reinicie las cápsulas creadas en el espacio de nombres K8SGPT-Operator-System. Las vainas se pueden reiniciar ingresando el posterior comando:
    kubectl -n k8sgpt-operator-system rollout restart deploy
    
    deployment.apps/k8sgpt-bedrock restarted
    deployment.apps/k8sgpt-operator-controller-manager restarted

Configure los agentes de la roca matriz de Amazon para K8SGPT y Argocd

Utilizamos una pila CloudFormation para implementar los agentes individuales en la región de EE. UU. (N. Virginia). Cuando tu desplegar CloudFormation plantillaimplementa varios posibles (se incurrirán en costos para los posibles de AWS utilizados).

Use los siguientes parámetros para la plantilla de CloudFormation:

La pila crea lo posterior AWS Lambda Funciones:

  • -LambdaK8sGPTAgent-
  • -RestartRollBackApplicationArgoCD-
  • -ArgocdIncreaseMemory-

La pila crea los siguientes agentes de roca matriz de Amazon:

  • ArgoCDAgentcon los siguientes grupos de energía:
    1. argocd-rollback
    2. argocd-restart
    3. argocd-memory-management
  • K8sGPTAgentcon el posterior camarilla de energía:
    1. k8s-cluster-operations

La pila emite lo posterior, con los siguientes agentes asociados a ella:

  1. ArgoCDAgent
  2. K8sGPTAgent
  • Lambdak8sgptagentrole, Gobierno de identidad y acercamiento de AWS (Iam) papel Nombre de posibles de Amazon (ARN) asociado a la función Lambda que entrega interacciones con el agente K8SGPT en el clúster EKS. Este rol se necesitará en una etapa posterior del proceso de configuración.
  • K8sGPTAgentAliasIdID del apodo K8SGPT Amazon Bedrock Agent Seudónimo
  • ArgoCDAgentAliasIdID del apodo de agente de roca de roca de Amazon de ArgoCd
  • CollaboratorAgentAliasIdID del colaborador Amazon Bedrock Agent Seudónimo

Asigne los permisos apropiados para habilitar el agente K8SGPT Amazon Bedrock para alcanzar al clúster EKS

Para habilitar el agente K8SGPT Amazon Bedrock para alcanzar al clúster EKS, debe configurar los permisos de IAM apropiados utilizando las API de distribución de acercamiento de Amazon EKS. Este es un proceso de dos pasos: primero, crea una entrada de acercamiento para el rol de ejecución de la función lambda (que puede encontrar en la sección de salida de plantilla de formación de nubes) y luego asocia el AmazonEKSViewPolicy para otorgar acercamiento de solo recitación al clúster. Esta configuración asegura que el agente K8SGPT tenga los permisos necesarios para monitorear y analizar los posibles del clúster EKS mientras mantiene el principio de pequeño privilegio.

  1. Cree una entrada de acercamiento para el rol de ejecución de la función Lambda
    export CFN_STACK_NAME=EKS-Troubleshooter
    	   export EKS_CLUSTER=PetSite
    
    export K8SGPT_LAMBDA_ROLE=`aws cloudformation describe-stacks --stack-name $CFN_STACK_NAME --query "Stacks(0).Outputs(?OutputKey=='LambdaK8sGPTAgentRole').OutputValue" --output text`
    
    aws eks create-access-entry 
        --cluster-name $EKS_CLUSTER 
        --principal-arn $K8SGPT_LAMBDA_ROLE
  2. Asociar la Política de pinta EKS con la entrada de acercamiento
    aws eks associate-access-policy 
        --cluster-name $EKS_CLUSTER 
        --principal-arn  $K8SGPT_LAMBDA_ROLE
        --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy 
        --access-scope type=cluster
  3. Verifique los agentes de la roca matriz de Amazon. La plantilla de CloudFormation agrega los tres agentes requeridos. Para ver a los agentes, en la consola de rock de Amazon, bajo herramientas de constructor en el panel de navegación, seleccione Agentescomo se muestra en la posterior captura de pantalla.

Agentes de roca madre

Realice la resolución de problemas de Amazon EKS utilizando el flujo de trabajo de Amazon Bedrock Agentic

Ahora, prueba la alternativa. Exploramos los siguientes dos escenarios:

  1. El agente coordina con el agente K8SGPT para proporcionar información sobre la causa raíz de una falta de la vaina
  2. El agente colaborador coordina con el agente de ArgoCD para proporcionar una respuesta

El agente coordina con el agente K8SGPT para proporcionar información sobre la causa raíz de una falta de la cápsula

En esta sección, examinamos una alerta con destino a debajo para una aplicación de muestra indicación Memory-Demo. Estamos interesados ​​en la causa raíz del problema. Usamos el posterior mensaje: «Recibimos una alerta de debajo para la aplicación Memory-Demo. Ayúdanos con la causa raíz del problema».

El agente no solo declaró la causa raíz, sino que fue un paso más allá para corregir potencialmente el error, que en este caso está aumentando los posibles de memoria a la aplicación.

Hallazgo del agente de K8SGPT

El agente colaborador coordina con el agente ARGOCD para proporcionar una respuesta

Para este círculo, continuamos desde el aviso antedicho. Creemos que la aplicación no se proporcionó suficiente memoria, y debería aumentarse para solucionar permanentemente el problema. Además podemos afirmar que la aplicación está en un estado poco saludable en la interfaz de beneficiario de ArgoCD, como se muestra en la posterior captura de pantalla.

Arcoui

Ahora procedamos a aumentar la memoria, como se muestra en la posterior captura de pantalla.

Interactuar con el agente para aumentar la memoria

El agente interactuó con el argocd_operations Agente de roca matriz de Amazon y pudo aumentar con éxito la memoria. Lo mismo se puede inferir en la interfaz de beneficiario de ArgoCd.

Argoui que muestra la memoria aumentando

Ablución

Si decide dejar de usar la alternativa, complete los siguientes pasos:

  1. Para eliminar los posibles asociados implementados utilizando AWS CloudFormation:
    1. En la consola de CloudFormation de AWS, elija pilas en el panel de navegación.
    2. Localice la pila que creó durante el proceso de implementación (le asignó un nombre).
    3. Seleccione la pila y elija Eliminar.
  2. Elimine el clúster EKS si creó uno específicamente para esta implementación.

Conclusión

Al orquestar múltiples agentes de roca matriz de Amazon, hemos demostrado cómo construir un sistema de alternativa de problemas de Amazon EKS con IA que simplifica las operaciones de Kubernetes. Esta integración del examen K8SGPT y la automatización de implementación de ArgoCD muestran las poderosas posibilidades al combinar agentes de IA especializados con las herramientas de DevOps existentes. Aunque esta alternativa representa el avance en las operaciones automatizadas de Kubernetes, es importante memorar que la supervisión humana sigue siendo valiosa, particularmente para escenarios complejos y decisiones estratégicas.

A medida que Amazon Bedrock y sus capacidades de agente continúan evolucionando, podemos esperar posibilidades de orquestación aún más sofisticadas. Puede extender esta alternativa para incorporar herramientas, métricas y flujos de trabajo de automatización para satisfacer las micción específicas de su ordenamiento.

Para obtener más información sobre Amazon Bedrock, consulte los siguientes posibles:


Sobre los autores

Vikram Venkataraman es un arquitecto de soluciones especialistas principales en Amazon Web Services (AWS). Ayuda a los clientes a modernizar, ascender y adoptar las mejores prácticas para sus cargas de trabajo contenedores. Con el surgimiento de la IA generativa, Vikram ha estado trabajando activamente con los clientes para emplear los servicios de IA/ML de AWS para resolver desafíos operativos complejos, optimizar los flujos de trabajo de monitoreo y mejorar la respuesta de incidentes a través de la automatización inteligente.

Puneeth Ranjan Komaragiri es un regente de cuenta técnica principal en Amazon Web Services (AWS). Es particularmente apasionado por el monitoreo y la observabilidad, la gobierno financiera en la montón y los dominios generativos de IA. En su papel coetáneo, Puneeth disfruta colaborando estrechamente con los clientes, aprovechando su experiencia para ayudarlos a diseñar y arquitectando sus cargas de trabajo en la montón para una escalera y resistor óptimas.

Sudheer sangunni es un regente de cuenta técnica senior en AWS Enterprise Support. Con su amplia experiencia en AWS Cloud y Big Data, Sudheer desempeña un papel fundamental en ayudar a los clientes a mejorar sus capacidades de monitoreo y observabilidad internamente de las ofertas de AWS.

Vikrant Choudhary es regente de cuentas técnicas senior en Amazon Web Services (AWS), especializada en ciencias de la vigor y ciencias de la vida. Con más de 15 abriles de experiencia en soluciones en la montón y construcción empresarial, ayuda a las empresas a acelerar sus iniciativas de transformación digital. En su rol coetáneo, Vikrant se asocia con los clientes para arquitectos e implementan soluciones innovadoras, desde migraciones en la montón y modernización de aplicaciones hasta tecnologías emergentes como la IA generativa, impulsando los resultados comerciales exitosos a través de la prohijamiento de la montón.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *