Giter Club home page Giter Club logo

ai-for-k8s's Introduction

⎈ Cómo la IA puede ayudarte con tus clústeres de Kubernetes ⎈

En este repo quiero compartir contigo tres formas en las que la inteligencia artificial puede ayudarte con tus clústers de Kubernetes. Para que puedas probar todo, y no tengas que instalar nada, puedes ejecutar este repo como un Dev Containers o en GitHub Codespaces, ¡del cual tienes 15GB/mes y 120 horas gratuitas al mes en tu cuenta personal!

Cómo la IA puede ...

🎁 ... ayudarte a aprender 👩🏼‍🏫 Kubernetes

GitHub Copilot

Con GitHub Copilot puedes aprender Kubernetes de forma más rápida y sencilla. Puedes utilizar el chat o simplemente escribir código y GitHub Copilot te ayudará a completarlo.

Puedes probar GitHub Copilot de forma gratuita en GitHub Copilot Individual Free Trial.

Una vez que tengas la cuenta, puedes usar cualquiera de estos IDEs para probar GitHub Copilot:

En Visual Studio Code solo tienes que instalar la extensión de GitHub Copilot: GitHub Copilot y ver este vídeo 😊

🎁 ... trabajar 👷🏼‍♀️ en tus clústeres de Kubernetes

kopylot

Se trata de otra herramienta que te ayuda a trabajar con tus clústers de Kubernetes. Puedes instalarlo con:

pip install kopylot

Pero si abres este repo como un Dev container no tienes que instalar nada 😉 Lo que sí que necesitas es exportar la siguiente variables de entorno con tu API key de OpenAI:

export KOPYLOT_AUTH_TOKEN=<YOUR_OPENAI_API_KEY>

Ejemplos de peticiones:

  1. Crea un despliegue con nginx que tenga 5 réplicas y que pueda acceder a él a través del puerto 8080. Este despliegue debe estar dentro del namespace kopylot-demo, el cual también debe ser creado
  2. Recupera los pods del nginx alojados en el namespace llamado kopylot-demo

kubectl ai

kubectl ai es un plugin de kubectl que te ayuda a trabajar con tus clústers de Kubernetes. Puedes instalarlo con:

brew tap sozercan/kubectl-ai https://github.com/sozercan/kubectl-ai
brew install kubectl-ai

Si quieres probarlo con Azure Open AI puedes seguir estos pasos:

Azure Open AI

# Variables
RESOURCE_GROUP="ai-loves-k8s"
LOCATION="canadaeast"
AZ_OPEN_AI="aifork8s"

# Login to Azure
az login

# Create Azure Open AI resource
az group create --name $RESOURCE_GROUP --location $LOCATION

# Create Azure Open AI resource
az cognitiveservices account create \
--kind OpenAI\
 --name $AZ_OPEN_AI \
 --custom-domain $AZ_OPEN_AI \
 --sku S0 \
 --resource-group $RESOURCE_GROUP \
 --location $LOCATION

# Create Chat GPT-4 deployment
az cognitiveservices account deployment create \
--name $AZ_OPEN_AI \
--resource-group  $RESOURCE_GROUP \
--deployment-name gpt-4 \
--model-name gpt-4 \
--model-version "0613"  \
--model-format OpenAI \
--sku-capacity "10" \
--sku-name "Standard"

Y exportar a las siguientes variables de entorno la información de tu modelo de GPT4:

export OPENAI_API_KEY=$(az cognitiveservices account keys list --name $AZ_OPEN_AI --resource-group $RESOURCE_GROUP --query key1 -o tsv)
export OPENAI_DEPLOYMENT_NAME=gpt-4
export OPENAI_ENDPOINT=$(az cognitiveservices account show --name $AZ_OPEN_AI --resource-group $RESOURCE_GROUP --query 'properties.endpoint' -o tsv)

Si quieres puedes guardar estas variables en un .env

cat < .env export OPENAI_API_KEY=$OPENAI_API_KEY export OPENAI_DEPLOYMENT_NAME=$OPENAI_DEPLOYMENT_NAME export OPENAI_ENDPOINT=$OPENAI_ENDPOINT EOF

Y cargarlas con:

source .env

🎁 ... analizar 🧐 tus clústeres de Kubernetes

k8sgpt

k8sgpt es un modelo de lenguaje de inteligencia artificial que te ayuda a analizar tus clústers de Kubernetes. Puedes instalarlo con:

brew tap k8sgpt-ai/k8sgpt
brew install k8sgpt

Pero si abres este repo en un Dev Container o en GitHub Codespaces ya lo tienes instalado 😉

Lo único que te queda por hacer es registrar tus credenciales en k8sgpt:

k8sgpt auth add --backend azureopenai \
--baseurl $OPENAI_ENDPOINT \
--engine $OPENAI_DEPLOYMENT_NAME \
--password $OPENAI_API_KEY \
--model gpt-4

Y ahora puedes preguntarle a k8sgpt sobre tus clústeres de Kubernetes:

k8sgpt analyze --namespace something-is-wrong --backend azureopenai
k8sgpt analyze --explain --namespace something-is-wrong --backend azureopenai

kopylot

Esta herramienta te ayuda a identificar problemas en tu clúster. Puedes instalarlo con:

pip install kopylot

Pero si abres este repo como un Dev container no tienes que instalar nada 😉 Lo que sí que necesitas es exportar la siguiente variables de entorno con tu API key de OpenAI:

export KOPYLOT_AUTH_TOKEN=<YOUR_OPENAI_API_KEY>

Para probar esta opción puedes desplegar este manifiesto con algunos problemillas:

kubectl apply -f wrong-manifests/wrong-resources.yaml

Si echas un vistazo al namespace something-is-wrong te darás cuenta de que algunas cosas no van bien:

kubectl get all -n something-is-wrong
kubectl get pods -n something-is-wrong

Vamos a preguntarle a kopylot qué está pasando:

kopylot diagnose deployment nginx
kopylot diagnose pod nginx-786466f74d-bbwg6

También puedes utilizar kopylot audit para obtener más información sobre un recurso:

kopylot audit pod nginx-786466f74d-bbwg6

ai-for-k8s's People

Contributors

0gis0 avatar

Stargazers

Alberto Cubero Lázaro avatar

Watchers

 avatar

Forkers

diegor160

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.