Pular para o conteúdo

Consul

Guia abrangente de comandos e fluxos de trabalho do HashiCorp Consul para descoberta de serviços, gerenciamento de configuração e malha de serviços.

Instalação e Configuração

ComandoDescrição
consul versionMostrar versão do Consul
consul agent -devIniciar agente de desenvolvimento
consul agent -config-dir=/etc/consul.dComece com a configuração
consul membersListar membros do cluster
consul infoMostrar informações do agente

Gerenciamento de Agente

Operações Básicas de Agente

ComandoDescrição
consul agent -server -bootstrap-expect=3Iniciar agente do servidor
consul agent -client=0.0.0.0Iniciar agente cliente
consul join 192.168.1.100Juntar cluster
consul leaveSaia do cluster graciosamente
consul reloadRecarregar configuração

Configuração de Agente

ComandoDescrição
consul validate /etc/consul.dValidar configuração
consul configtestConfiguração de teste

Descoberta de Serviços

Registro de Serviços

ComandoDescrição
consul services register service.jsonRegistrar serviço a partir de arquivo
consul services deregister service-idDesregistrar serviço
consul catalog servicesListar todos os serviços
consul catalog nodesListar todos os nós

Consultas de Serviços

ComandoDescrição
consul catalog service webListar instâncias de serviço
consul catalog service web -tag productionFiltrar por tag
consul health service webEstado de verificação de saúde
consul health node node1Estado de saúde do Node

Interface DNS

ComandoDescrição
dig @127.0.0.1 -p 8600 web.service.consulServiço de consulta via DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consulConsultar datacenter específico
dig @127.0.0.1 -p 8600 node1.node.consulConsultar nó via DNS

Armazenamento de Chave-Valor

Operações de KV

ComandoDescrição
consul kv put config/database/url "postgresql://..."Armazenar chave-valor
consul kv get config/database/urlRecuperar valor
consul kv get -recurse config/Obter todas as chaves sob o prefixo
consul kv delete config/database/urlTecla Delete
consul kv delete -recurse config/Excluir todas as chaves sob o prefixo

Operações Avançadas de KV

ComandoDescrição
consul kv put -cas -modify-index=123 config/app/version "2.0"Atualização condicional
consul kv get -detailed config/app/versionObtenha com metadados
consul kv export config/Exportar chaves
consul kv import @backup.jsonImportar chaves

Verificações de Saúde

Gerenciamento de Verificações de Saúde

ComandoDescrição
consul health checksListar todos os health checks
consul health checks webLista de verificações para serviço
consul health state criticalLista de verificações críticas
consul health state passingListar verificações aprovadas

Listas de Controle de Acesso (ACLs)

Gerenciamento de ACL

ComandoDescrição
consul acl bootstrapSistema ACL do Bootstrap
consul acl token create -description="Web service token"Criar token
consul acl token listListar tokens
consul acl token delete TOKEN_IDExcluir token

Políticas de ACL

ComandoDescrição
consul acl policy create -name web-policy -rules @policy.hclCriar política
consul acl policy listListar políticas
consul acl policy read web-policyLer política
consul acl policy update -id POLICY_ID -rules @new-policy.hclAtualizar política

Connect (Malha de Serviços)

Configuração de Connect

ComandoDescrição
consul connect ca get-configObter configuração de CA
consul connect ca set-config -config-file ca.jsonConfigurar configuração de CA
consul connect proxy -service webIniciar proxy Connect

Intenções

ComandoDescrição
consul intention create web dbPermitir web para conectar ao db
consul intention create -deny web cacheNegar cache na web
consul intention listListar todas as intenções
consul intention delete web dbExcluir intenção

Entradas de Configuração

Configuração de Serviço

ComandoDescrição
consul config write service-defaults.hclEscrever padrões de serviço
consul config write proxy-defaults.hclEscrever padrões de proxy
consul config list -kind service-defaultsListar configurações
consul config read -kind service-defaults -name webLer configuração
consul config delete -kind service-defaults -name webExcluir configuração

Snapshots e Backups

Operações de Snapshot

ComandoDescrição
consul snapshot save backup.snapCriar snapshot
consul snapshot restore backup.snapRestaurar snapshot
consul snapshot inspect backup.snapInspecionar snapshot

Monitoramento e Depuração

Comandos de Monitoramento

ComandoDescrição
consul monitorRegistros de stream
consul monitor -log-level=DEBUGLogs de nível de depuração
consul debugColetar informações de depuração
consul operator raft list-peersListar pares Raft

Desempenho

ComandoDescrição
consul operator autopilot get-configObter configuração do autopilot
consul operator autopilot set-config -cleanup-dead-servers=trueDefinir configuração do autopilot

Exemplos de Configuração

Configuração de Servidor

datacenter = "dc1"
data_dir = "/opt/consul"
log_level = "INFO"
node_name = "consul-server-1"
server = true
bootstrap_expect = 3
retry_join = ["10.0.1.10", "10.0.1.11"]

bind_addr = "10.0.1.10"
client_addr = "0.0.0.0"

ui_config \\\\{
  enabled = true
\\\\}

connect \\\\{
  enabled = true
\\\\}

acl = \\\\{
  enabled = true
  default_policy = "deny"
  enable_token_persistence = true
\\\\}

Configuração de Cliente

Would you like me to continue with the remaining sections? I noticed that some sections (3-20) are currently empty. If you have specific content for those sections, please provide them and I’ll translate accordingly.```hcl datacenter = “dc1” data_dir = “/opt/consul” log_level = “INFO” node_name = “consul-client-1” retry_join = [“10.0.1.10”, “10.0.1.11”, “10.0.1.12”]

bind_addr = “10.0.1.20” client_addr = “127.0.0.1”

services \\{ name = “web” port = 80 tags = [“production”, “v1.0”]

check \\{ http = “http://localhost:80/health” interval = ”10s” \\} \\}

### Definição de Serviço
```json
\\\\{
  "service": \\\\{
    "name": "web",
    "port": 80,
    "tags": ["production"],
    "check": \\\\{
      "http": "http://localhost:80/health",
      "interval": "10s"
    \\\\},
    "connect": \\\\{
      "sidecar_service": \\\\{\\\\}
    \\\\}
  \\\\}
\\\\}

Política de ACL

node_prefix "" \\\\{
  policy = "read"
\\\\}

service_prefix "" \\\\{
  policy = "read"
\\\\}

service "web" \\\\{
  policy = "write"
\\\\}

key_prefix "config/web/" \\\\{
  policy = "write"
\\\\}

session_prefix "" \\\\{
  policy = "read"
\\\\}

Configuração de Service Mesh

Padrões de Proxy

Kind = "proxy-defaults"
Name = "global"

Config \\\\{
  protocol = "http"
\\\\}

MeshGateway \\\\{
  Mode = "local"
\\\\}

Padrões de Serviço

Kind = "service-defaults"
Name = "web"

Protocol = "http"

MeshGateway \\\\{
  Mode = "local"
\\\\}

Expose \\\\{
  Checks = true
  Paths = [
    \\\\{
      Path = "/health"
      LocalPathPort = 8080
      ListenerPort = 21500
    \\\\}
  ]
\\\\}

Configuração Multi-Datacenter

Federação WAN

ComandoDescrição
consul join -wan 192.168.2.10Junte-se à WAN
consul members -wanListar membros WAN
consul catalog datacentersListar datacenters

Consultas Entre Data Centers

ComandoDescrição
consul catalog service web -datacenter dc2Serviço de consulta no DC2
dig @127.0.0.1 -p 8600 web.service.dc2.consulConsulta DNS para DC2

Resolução de Problemas

Problemas Comuns

ComandoDescrição
consul operator raft list-peersVerificar estado do cluster Raft
consul debug -duration=30sColetar informações de depuração
consul validate /etc/consul.dValidar configuração
consul members -detailedInformações detalhadas de membro

Análise de Logs

ComandoDescrição
consul monitor -log-level=TRACERegistro de nível de rastreamento
journalctl -u consul -fSeguir logs do systemd

Melhores Práticas

Segurança