Salta ai contenuti

Consul

Comandi e workflow completi di HashiCorp Consul per service discovery, gestione della configurazione e service mesh.

Installazione e Configurazione

ComandoDescrizione
consul versionMostra versione Consul
consul agent -devAvvia agente di sviluppo
consul agent -config-dir=/etc/consul.dInizia con la configurazione
consul membersElenca i membri del cluster
consul infoMostra informazioni agente

Gestione dell’Agente

Operazioni Base dell’Agente

ComandoDescrizione
consul agent -server -bootstrap-expect=3Avvia agent server
consul agent -client=0.0.0.0Avvia agente client
consul join 192.168.1.100Unisciti al cluster
consul leaveLasciare il cluster con eleganza
consul reloadRicarica configurazione

Configurazione dell’Agente

ComandoDescrizione
consul validate /etc/consul.dConvalidare la configurazione
consul configtestConfigurazione di test

Service Discovery

Registrazione del Servizio

ComandoDescrizione
consul services register service.jsonRegistra servizio da file
consul services deregister service-idDeregistra servizio
consul catalog servicesElenca tutti i servizi
consul catalog nodesElenca tutti i nodi

Query dei Servizi

ComandoDescrizione
consul catalog service webElenca istanze di servizio
consul catalog service web -tag productionFiltra per tag
consul health service webStato del controllo sanitario
consul health node node1Stato di salute del nodo

Interfaccia DNS

ComandoDescrizione
dig @127.0.0.1 -p 8600 web.service.consulServizio di query tramite DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consulQuery datacenter specifico
dig @127.0.0.1 -p 8600 node1.node.consulQuery node via DNS

Key-Value Store

Operazioni KV

ComandoDescrizione
consul kv put config/database/url "postgresql://..."Memorizza chiave-valore
consul kv get config/database/urlRecupera valore
consul kv get -recurse config/Ottieni tutte le chiavi sotto il prefisso
consul kv delete config/database/urlTasto Canc
consul kv delete -recurse config/Elimina tutte le chiavi sotto il prefisso

Operazioni KV Avanzate

ComandoDescrizione
consul kv put -cas -modify-index=123 config/app/version "2.0"Aggiornamento condizionale
consul kv get -detailed config/app/versionOttieni con i metadati
consul kv export config/Esporta chiavi
consul kv import @backup.jsonImporta chiavi

Health Checks

Gestione degli Health Check

ComandoDescrizione
consul health checksElenca tutti i controlli sanitari
consul health checks webElenco controlli per il servizio
consul health state criticalElencare controlli critici
consul health state passingElenco dei controlli superati

Liste di Controllo Accessi (ACL)

Gestione ACL

ComandoDescrizione
consul acl bootstrapSistema ACL di Bootstrap
consul acl token create -description="Web service token"Crea token
consul acl token listElenca token
consul acl token delete TOKEN_IDElimina token

Policy ACL

ComandoDescrizione
consul acl policy create -name web-policy -rules @policy.hclCrea policy
consul acl policy listElenca policy
consul acl policy read web-policyLeggi policy
consul acl policy update -id POLICY_ID -rules @new-policy.hclAggiorna policy

Connect (Service Mesh)

Configurazione Connect

ComandoDescrizione
consul connect ca get-configOttieni configurazione CA
consul connect ca set-config -config-file ca.jsonConfigurazione CA
consul connect proxy -service webAvvia Connect proxy

Intenzioni

ComandoDescrizione
consul intention create web dbConsenti web di connettersi al db
consul intention create -deny web cacheNegare il web alla cache
consul intention listElenca tutti gli intenti
consul intention delete web dbElimina intenzione

Voci di Configurazione

Configurazione del Servizio

ComandoDescrizione
consul config write service-defaults.hclScrivi impostazioni predefinite del servizio
consul config write proxy-defaults.hclScrivi impostazioni predefinite proxy
consul config list -kind service-defaultsElenco configurazioni
consul config read -kind service-defaults -name webLeggi configurazione
consul config delete -kind service-defaults -name webElimina configurazione

Snapshot e Backup

Operazioni di Snapshot

ComandoDescrizione
consul snapshot save backup.snapCrea snapshot
consul snapshot restore backup.snapRipristina snapshot
consul snapshot inspect backup.snapIspeziona snapshot

Monitoraggio e Debug

Comandi di Monitoraggio

ComandoDescrizione
consul monitorLog di stream
consul monitor -log-level=DEBUGLog di debug a livello
consul debugRaccogli informazioni di debug
consul operator raft list-peersElenca peer Raft

Prestazioni

ComandoDescrizione
consul operator autopilot get-configOttieni configurazione autopilot
consul operator autopilot set-config -cleanup-dead-servers=trueImposta configurazione autopilot

Esempi di Configurazione

Configurazione Server

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
\\\\}

Configurazione Client

Would you like me to continue with the remaining sections or translations?```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” \\} \\} **Abilita ACL**: Usa sempre ACL in produzionejson \\{ “service”: \\{ “name”: “web”, “port”: 80, “tags”: [“production”], “check”: \\{ “http”: “http://localhost:80/health”, “interval”: ”10s” \\}, “connect”: \\{ “sidecar_service”: \\{\\} \\} \\} \\} **Crittografia TLS**: Abilita TLS per tutte le comunicazionihcl node_prefix "" \\{ policy = “read” \\}

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

service “web” \\{ policy = “write” \\}

key_prefix “config/web/” \\{ policy = “write” \\}

session_prefix "" \\{ policy = “read” \\} **Crittografia Gossip**: Usa la crittografia gossiphcl Kind = “proxy-defaults” Name = “global”

Config \\{ protocol = “http” \\}

MeshGateway \\{ Mode = “local” \\} **Segmentazione di Rete**: Sicurezza di rete appropriatahcl Kind = “service-defaults” Name = “web”

Protocol = “http”

MeshGateway \\{ Mode = “local” \\}

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


### Performance
| Comando | Descrizione |
|---------|-------------|
| `consul join -wan 192.168.2.10` | Unisciti a WAN |
| `consul members -wan` | Elenco dei membri WAN |
| `consul catalog datacenters` | Elenca datacenter |**Allocazione Risorse**: CPU e memoria adeguate
| Comando | Descrizione |
|---------|-------------|
| `consul catalog service web -datacenter dc2` | Servizio di query in DC2 |
| `dig @127.0.0.1 -p 8600 web.service.dc2.consul` | Query DNS a DC2 |**Latenza di Rete**: Minimizza la latenza di rete
| Comando | Descrizione |
|---------|-------------|
| `consul operator raft list-peers` | Controlla lo stato del cluster Raft |
| `consul debug -duration=30s` | Raccogli informazioni di debug |
| `consul validate /etc/consul.d` | Convalidare la configurazione |
| `consul members -detailed` | Informazioni dettagliate del membro |**I/O Disco**: Usa storage veloce per la directory dei dati
| Comando | Descrizione |
|---------|-------------|
| `consul monitor -log-level=TRACE` | Trace level logging |
| `journalctl -u consul -f` | Segui i log di systemd |**Dimensione Cluster**: Dimensionamento ottimale del cluster