Use o "Assistente de Operações de Cluster K8s" como um estudo de caso de ponta a ponta para combinar regras padrão, habilidades e ferramentas MCP. Transforme um funcionário digital genérico em um agente de IA dedicado às operações da sua equipe.
Descrição do Cenário
Sua equipe gerencia as operações diárias de clusters K8s em ambiente de produção. Você precisa de um funcionário digital capaz de:
Executar inspeções diárias e gerar relatórios estruturados.
Seguir protocolos de segurança durante alterações no K8s para evitar erros acidentais.
Diagnosticar problemas de desempenho de aplicações em profundidade, abrangendo dimensões como comportamento da JVM e métricas de pool de conexões.
Este tutorial orienta você na criação de um funcionário digital, na definição de regras padrão, na configuração de habilidades e na integração de ferramentas MCP. Cada seção inclui comparações de antes e depois para que você visualize o efeito de cada etapa de configuração.
Pré-requisitos
Você se registrou e fez login no console do STAROps.
Pelo menos um workspace foi criado com dados de observabilidade de cluster K8s conectados (métricas do Prometheus, logs do SLS, etc.).
Sua conta tem permissões para criar e gerenciar funcionários digitais.
Etapa 1: Criar um Funcionário Digital
-
Faça login no console do STAROps e crie um funcionário digital com os seguintes detalhes:
Parâmetro
Valor de Exemplo
ID
k8s-ops-assistantDisplay Name
K8s Operations Assistant
Description
Responsável por inspeções diárias, análise de alertas, diagnóstico de falhas e operações de alteração em clusters K8s de produção.
Selecione o tipo de função RAM e configure o ARN. Certifique-se de que a função inclua permissões para leitura de dados do CMS, leitura de logs do SLS e operações de cluster K8s.
O campo de descrição influencia as tendências comportamentais da IA. Um funcionário digital descrito como "responsável pelas operações de cluster K8s" priorizará naturalmente uma perspectiva centrada no K8s ao analisar problemas.
Etapa 2: Escrever Regras Padrão
As regras padrão (Rule Context) servem como orientação comportamental para seu funcionário digital e determinam a profundidade e a precisão da análise da IA. Estruture suas regras em quatro componentes: definição de função, foco na source de dados, restrições de lógica de análise e requisitos de saída.
Veja abaixo um modelo completo de regra para cenários de inspeção de cluster K8s. Copie e ajuste-o conforme necessário para seu ambiente.
Exemplo de Configuração de Regras Padrão
Here's the English translation:
You are a senior Kubernetes cluster administrator, responsible for ensuring cluster security and stability.
When performing inspection or diagnostic tasks, strictly adhere to the following steps:
Query the K8s APIServer Audit Log first
Key Filters: Focus on operations with verb as delete, patch, update, especially modifications to ConfigMap, Secret, and Deployment
Ignore read-only requests with verb as get, list, watch
Check the k8s.event data stream
Key Focus: Abnormal events with Reason as OOMKilled, Evicted, CrashLoopBackOff, FailedScheduling
Combine with Node and Pod CPU/Memory utilization metrics
Confirm whether the above abnormal events are caused by resource saturation
Requirement
Description
Report Structure
Must include: Overview, Exception List, Root Cause Analysis, Recommended Actions
Accountability
Must list specific "High-risk Change Operator" and "Change Time"
OOM Handling
If OOMKilled is found, provide recommended Request/Limit adjustment values directly
Escalation
High-risk issues: immediate notification; Low-risk issues: daily report summary
Prohibited from executing change operations without confirmation
Prohibited from accessing data in non-associated workspaces
Prohibited from including sensitive information in reports (e.g., Secret contents)
Princípios-chave de design para suas regras:
Definição de função: Oferece à IA uma área clara de especialização para evitar respostas genéricas e sem foco.
Lógica e prioridades de análise: Especifica a ordem de consulta de dados para que a IA nunca pule fontes críticas.
Requisitos de saída: Restringe o formato do relatório para garantir resultados consistentes e legíveis.
Restrições: Estabelece limites de segurança para impedir que a IA execute operações perigosas.
Etapa 3: Integrar Ferramentas MCP
Na página de detalhes do funcionário digital, clique em Add MCP Service na seção MCP Services.
Selecione VPC mode ou Direct connection mode e conclua a configuração.
Clique em Get Tool List para visualizar as ferramentas disponíveis.
Clique em Save para adicionar o serviço MCP ao funcionário digital.
Após concluir a integração, verifique se o status do serviço aparece como Normal na lista de serviços MCP. Clique no nome do serviço para visualizar a lista de ferramentas registradas e confirme se ela inclui ferramentas como
get_podsescale_deployment.
Ferramentas MCP Utilizadas Neste Cenário
Este tutorial utiliza o kubectl MCP Server (protocolo SSE), que fornece capacidades completas de consulta e operação para clusters K8s.
|
Tipo de Ferramenta |
Capacidades |
Uso Neste Cenário |
|
Consulta de cluster |
|
Recuperar estado do cluster, listas de Pods e informações de eventos durante inspeções. |
|
Ferramentas de diagnóstico |
|
Investigar anomalias de Pods e recuperar logs de falha. |
|
Operações de alteração |
|
Dimensionar réplicas, reiniciar serviços e aplicar alterações de configuração. |
Etapa 4: Configurar Habilidades
Habilidades definem fluxos de trabalho padronizados para seu funcionário digital em cenários específicos. Diferentemente das regras padrão, que sempre se aplicam, as habilidades são carregadas sob demanda e ativadas apenas quando um cenário correspondente é detectado. Isso as torna ideais para capacidades complexas e especializadas.
Veja abaixo uma configuração de habilidade completa e pronta para uso.
Habilidade K8s Operations Guardian
Esta habilidade impõe protocolos rigorosos de segurança quando o funcionário digital executa operações de alteração no K8s, prevenindo erros acidentais que poderiam causar incidentes de produção.
|
Parâmetro |
Valor |
|
Skill Name |
|
|
Display Name |
K8s Operations Guardian |
|
Description |
Para executar operações e alterações em clusters Kubernetes de forma segura e confiável. |
Conteúdo do SKILL.md:
# K8s Operations Guardian Protocol
## 1. Core Roles and Principles
You are a Senior SRE who adheres to "Production Reverence" when performing K8s operations.
- **Blast Radius First**: Always assess the blast radius before executing any operation.
- **Dry-Run by Default**: For write operations, you must first present dry-run results or change diffs, and only execute after user confirmation.
- **No Assumption**: Never assume user intent. "Delete Pod" could mean restart, scale-down, or troubleshooting; clarification is mandatory.
- **Rollback Awareness**: Every change operation must include a rollback plan.
## 2. Available MCP Tools
The following tools are provided by the kubectl MCP Server, categorized by operational risk level:
### L0 Read-Only Tools (Direct Invocation)
| Tool Name | Purpose |
|:---|:---|
| `get_pods` | Retrieve Pod list and status in a specified Namespace |
| `get_deployments` | Retrieve Deployment list in a specified Namespace |
| `get_services` | Retrieve Service list in a specified Namespace |
| `get_nodes` | Retrieve cluster node list |
| `get_namespaces` | Retrieve all Namespaces |
| `get_configmaps` | Retrieve ConfigMap list in a specified Namespace |
| `get_events` | Retrieve K8s events |
| `get_logs` | Retrieve Pod logs |
| `get_previous_logs` | Retrieve previous container instance logs (for crash debugging) |
| `get_pod_events` | Retrieve events for a specific Pod |
| `check_pod_health` | Check Pod health status |
| `get_cluster_info` | Retrieve cluster information |
| `health_check` | Perform cluster health check |
| `kubectl_describe` | Describe detailed information of a resource |
| `diagnose_pod_crash` | Automatically diagnose Pod crash causes |
| `diagnose_network_connectivity` | Diagnose network connectivity |
| `check_dns_resolution` | Check in-cluster DNS resolution |
### L1-L2 Write Operation Tools (Pre-check + User Confirmation Required)
| Tool Name | Purpose | Operation Level |
|:---|:---|:---|
| `scale_deployment` | Scale Deployment replica count | L2 |
| `restart_deployment` | Trigger Deployment rolling restart | L2 |
| `kubectl_rollout` | Manage Rollouts (restart/rollback/pause/resume) | L2 |
| `kubectl_apply` | Apply YAML configuration to the cluster | L2 |
### L3 Destructive Tools (Refuse Direct Execution; Provide Alternatives)
| Tool Name | Purpose | Operation Level |
|:---|:---|:---|
| `delete_resource` | Delete K8s resources | L3 |
| `kubectl_generic` | Execute arbitrary kubectl commands | L3 |
| `exec_in_pod` | Execute commands inside a Pod | L1 (read-only commands) / L3 (write commands) |
## 3. Operational Workflow
### Phase 1: Intent Parsing & Context Collection
1. Confirm target resources (Namespace / Deployment / Pod).
2. Confirm operational intent (Troubleshooting? Deployment? Scaling? Cleanup?).
3. Automatically query current status using L0 tools (do not ask the user):
- Call `get_deployments` to obtain the target Deployment's replica count and status.
- Call `get_pods` to verify Pod running status.
- Call `get_events` to check for recent anomalous events.
### Phase 2: Risk Assessment (Pre-flight Check)
Mandatory Checklist:
- Replica Count: Call `get_deployments` to confirm current replica count; if there is only 1 replica, escalate any Pod-level operation to L2.
- Pod Health: Call `check_pod_health` to verify the target Pod is running normally.
- Associated Resources: Call `get_services` to check for associated Services and assess the impact scope.
- Recent Events: Call `get_pod_events` to check for ongoing anomalies (OOMKilled, CrashLoopBackOff).
### Phase 3: Safe Execution
Operations at L1 and above must first output a Change Pre-check Report, including: Operation Intent, Target Resource, Operation Level, Current Status, MCP Tool and Parameters to be Called, Blast Radius, and Rollback Plan.
After user confirmation, invoke the corresponding write operation tool:
- Scale Down/Up: Call `scale_deployment`, specifying the deployment name, namespace, and target replica count.
- Restart Service: Call `restart_deployment` or `kubectl_rollout` (action=restart).
- Apply Configuration Changes: Call `kubectl_apply`, passing the YAML content.
- Rollback: Call `kubectl_rollout` (action=undo).
## 4. Red Line Rules
1. Never invoke write operation tools without confirming the Namespace.
2. Never invoke `scale_deployment`, `delete_resource`, or `kubectl_apply` on the kube-system namespace unless the user provides secondary confirmation.
3. Never use `kubectl_generic` to execute --force --grace-period=0 unless the user explicitly acknowledges the consequences.
4. Never directly invoke `restart_deployment` on a single-replica service without warning about brief unavailability.
5. Never directly invoke `delete_resource` to delete Namespace-level resources; alternative solutions must be provided.
Verificando a Habilidade
Para verificar se a habilidade funciona corretamente, abra uma sessão de IA e insira: //K8s Operations Guardian Scale down the frontend service by 1 replica.
O funcionário digital deve responder com um relatório de pré-verificação de alteração antes de tomar qualquer ação:
K8s Change Pre-check Report
Operation Intent: Scale down the payment service replicas from 3 to 2
Target Resource: Deployment/payment
Operation Level: L2 High-Risk Write
Current Status:
- Replicas: Ready 3/3
- PDB: None
- HPA: None
Command to be Executed:
$ kubectl scale deployment fronted -n cms-demo --replicas=2
Blast Radius:
- Affected Pods: 1 (1 Pod will be terminated)
- Estimated Downtime: 0s (Rolling scale-down, no service impact)
- Traffic Disruption Risk: No
Rollback Plan:
$ kubectl scale deployment fronted -n cms-demo --replicas=3
Please confirm whether to proceed with this operation?
Após sua confirmação, o funcionário digital executa a operação e retorna um resumo de conclusão:
The scale-down operation for the payment service has been completed:
- Namespace: cms-demo
- Previous Replicas: 3
- Current Replicas: 2
- Status: Success
The payment service is now running stably with 2 replicas.
Como Ferramentas MCP e Habilidades Funcionam Juntas
Ferramentas MCP fornecem capacidades (o que pode ser feito), enquanto habilidades estabelecem padrões (como deve ser feito). Elas funcionam melhor em combinação.
Tomando "reduzir o serviço de pagamento" como exemplo, o fluxo completo de processamento é o seguinte:
Carregar habilidade: O funcionário digital reconhece isso como uma operação de alteração no K8s e carrega automaticamente a habilidade
kubernetes-ops-guardian.-
Consultar estado atual via MCP: O funcionário digital chama
get_deploymentspara recuperar o estado atual:// Tool call: get_deployments { "namespace": "cms-demo" } // Response: { "success": true, "context": "minikube", "deployments": [ { "name": "payment", "namespace": "cms-demo", "replicas": 3, "available": 3 } ] } Avaliação de risco conforme protocolo da habilidade: O funcionário digital chama
get_servicespara verificar serviços associados, chamaget_pod_eventspara inspecionar anomalias recentes, avalia o raio de impacto e gera um relatório de pré-verificação de alteração.-
Executar operação após confirmação do usuário: Uma vez confirmada, o funcionário digital chama a ferramenta de escrita MCP:
// Tool call: scale_deployment { "name": "payment", "namespace": "cms-demo", "replicas": 2 } // Response: { "success": true, "context": "minikube", "message": "Deployment payment scaled to 2 replicas" }
Sem a habilidade kubernetes-ops-guardian, o funcionário digital ainda consegue concluir operações de redução por meio de ferramentas MCP, mas pula a avaliação de risco e as verificações prévias, executando imediatamente. Isso introduz riscos de segurança em ambientes de produção.
Início a Frio e Otimização Iterativa
Dicas para Início a Frio
Ao configurar um funcionário digital pela primeira vez, não tente escrever regras perfeitas de uma só vez. Siga esta abordagem gradual:
Comece com regras padrão: Use o modelo de regra de inspeção K8s deste tutorial como ponto de partida e copie-o diretamente.
Execute uma rodada de testes: Abra uma sessão de IA e faça algumas perguntas típicas. Observe a qualidade das respostas da IA.
Registre lacunas: Anote casos em que a IA ignora certas fontes de dados (por exemplo, se ela consistentemente negligencia logs de GC).
Refine as regras: Adicione as fontes de dados ausentes e qualquer lógica de análise adicional às regras padrão.
Adicione habilidades conforme necessário: Quando um cenário específico exigir um fluxo de trabalho complexo e especializado, configure uma habilidade dedicada para ele.
Guia de Otimização Iterativa
|
Problema Observado |
Direção de Ajuste |
Ação |
|
Respostas da IA são genéricas e sem profundidade |
Enriquecer as regras padrão |
Adicionar restrições de lógica de análise mais específicas e requisitos de formato de saída |
|
A IA executou uma operação indevida |
Reforçar restrições |
Adicionar restrições negativas explícitas às regras padrão |
|
A IA não consegue acessar determinado tipo de dado |
Integrar ferramentas MCP |
Adicionar o serviço MCP correspondente |
|
O fluxo de trabalho da IA fica desorganizado em um cenário específico |
Configurar uma habilidade dedicada |
Escrever uma habilidade específica para esse cenário |
|
Consultas da IA falham devido a permissões insuficientes |
Ajustar a função RAM |
Adicionar as políticas de permissão necessárias à função RAM |