Pular para o conteúdo
Skillpedia
Diversos41 mil · #4827

linkerd-patterns

Auxilia seu agente a implementar padrões de service mesh com Linkerd para implantações leves e seguras.

O que ela faz

Esta ferramenta ajuda a configurar o Linkerd, um sistema que torna a comunicação entre diferentes partes de um aplicativo mais segura e confiável. Ela facilita a instalação e a configuração de recursos como segurança automática e distribuição de tráfego.

Quando usar

  • ✓Ao instalar o Linkerd pela primeira vez.
  • ✓Quando quiser distribuir o tráfego para testes (canary deployments).
  • ✓Para configurar regras de acesso entre os serviços.

Exemplo do que pedir para a IA

“Como configuro o Linkerd para distribuir 10% do tráfego para uma nova versão de teste?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/cloud-infrastructure/skills/linkerd-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/cloud-infrastructure/skills/linkerd-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa modelos pré-definidos para criar os arquivos de configuração necessários. Você escolhe um modelo, preenche as informações específicas do seu projeto e a ferramenta gera o código para aplicar no seu ambiente.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill linkerd-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/cloud-infrastructure/skills/linkerd-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões do Linkerd

Padrões de produção para a malha de serviços Linkerd - a malha de serviços leve e focada em segurança para Kubernetes.

Quando Usar Esta Habilidade

  • Configurar uma malha de serviços leve
  • Implementar mTLS automático
  • Configurar divisões de tráfego para implantações canary
  • Configurar perfis de serviço para métricas por rota
  • Implementar retentativas e tempos limite
  • Malha de serviços multi-cluster

Conceitos Principais

1. Arquitetura do Linkerd

┌─────────────────────────────────────────────┐
│                Control Plane                 │
│  ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
│  │ destiny │ │ identity │ │ proxy-inject │ │
│  └─────────┘ └──────────┘ └──────────────┘ │
└─────────────────────────────────────────────┘
                      │
┌─────────────────────────────────────────────┐
│                 Data Plane                   │
│  ┌─────┐    ┌─────┐    ┌─────┐             │
│  │proxy│────│proxy│────│proxy│             │
│  └─────┘    └─────┘    └─────┘             │
│     │           │           │               │
│  ┌──┴──┐    ┌──┴──┐    ┌──┴──┐            │
│  │ app │    │ app │    │ app │            │
│  └─────┘    └─────┘    └─────┘            │
└─────────────────────────────────────────────┘

2. Recursos Principais

Recurso Propósito
ServiceProfile Métricas por rota, retentativas, tempos limite
TrafficSplit Implantações canary, testes A/B
Server Definir políticas do lado do servidor
ServerAuthorization Políticas de controle de acesso

Modelos

Modelo 1: Instalação da Malha

Use uma versão da CLI compatível com o cluster de destino. O exemplo usa Homebrew; para outros sistemas, siga o guia de instalação oficial.

# Install the CLI with Homebrew
brew install linkerd
linkerd version

# Validate cluster
linkerd check --pre

# Install CRDs
linkerd install --crds | kubectl apply -f -

# Install control plane
linkerd install | kubectl apply -f -

# Verify installation
linkerd check

# Install viz extension (optional)
linkerd viz install | kubectl apply -f -

Modelo 2: Injetar Namespace

# Automatic injection for namespace
apiVersion: v1
kind: Namespace
metadata:
  name: my-app
  annotations:
    linkerd.io/inject: enabled
---
# Or inject specific deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  annotations:
    linkerd.io/inject: enabled
spec:
  template:
    metadata:
      annotations:
        linkerd.io/inject: enabled

Modelo 3: Perfil de Serviço com Retentativas

apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
  name: my-service.my-namespace.svc.cluster.local
  namespace: my-namespace
spec:
  routes:
    - name: GET /api/users
      condition:
        method: GET
        pathRegex: /api/users
      responseClasses:
        - condition:
            status:
              min: 500
              max: 599
          isFailure: true
      isRetryable: true
    - name: POST /api/users
      condition:
        method: POST
        pathRegex: /api/users
      # POST not retryable by default
      isRetryable: false
    - name: GET /api/users/{id}
      condition:
        method: GET
        pathRegex: /api/users/[^/]+
      timeout: 5s
      isRetryable: true
  retryBudget:
    retryRatio: 0.2
    minRetriesPerSecond: 10
    ttl: 10s

Modelo 4: Divisão de Tráfego (Canary)

apiVersion: split.smi-spec.io/v1alpha1
kind: TrafficSplit
metadata:
  name: my-service-canary
  namespace: my-namespace
spec:
  service: my-service
  backends:
    - service: my-service-stable
      weight: 900m # 90%
    - service: my-service-canary
      weight: 100m # 10%

Modelo 5: Política de Autorização de Servidor

# Define o servidor
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
  name: my-service-http
  namespace: my-namespace
spec:
  podSelector:
    matchLabels:
      app: my-service
  port: http
  proxyProtocol: HTTP/1
---
# Permite tráfego de clientes específicos
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
  name: allow-frontend
  namespace: my-namespace
spec:
  server:
    name: my-service-http
  client:
    meshTLS:
      serviceAccounts:
        - name: frontend
          namespace: my-namespace
---
# Permite tráfego não autenticado (por exemplo, de um ingress)

…
Perguntas frequentes

O que é um 'service mesh'?

É uma camada de infraestrutura que garante que a comunicação entre os serviços do seu aplicativo seja confiável, segura e observável, sem que você precise mudar o código do aplicativo.

O que é mTLS?

É uma forma de criptografar e autenticar a comunicação entre os serviços, garantindo que apenas serviços autorizados possam conversar entre si.

O que são 'traffic splits'?

Permitem direcionar uma porcentagem do tráfego para diferentes versões do seu serviço, útil para testes graduais de novas funcionalidades.

Detalhes

Descrição original do autor

Implement Linkerd service mesh patterns for lightweight, security-focused service mesh deployments. Use when setting up Linkerd, configuring traffic policies, or implementing zero-trust networking with minimal overhead.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4827
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas