Come gestire gli utenti NATS
Questa guida spiega come creare e gestire gli utenti di un cluster NATS su Hikube in modo dichiarativo tramite i manifesti Kubernetes.
Prerequisitiโ
- kubectl configurato con il vostro kubeconfig Hikube
- Un cluster NATS distribuito su Hikube (o un manifesto pronto per la distribuzione)
- (Opzionale) la CLI nats installata localmente per testare le connessioni
Passiโ
1. Aggiungere degli utentiโ
Gli utenti sono dichiarati nella sezione users del manifesto. Ogni utente รจ identificato da un nome e possiede una password.
apiVersion: apps.cozystack.io/v1alpha1
kind: NATS
metadata:
name: my-nats
spec:
replicas: 3
resourcesPreset: small
jetstream:
enabled: true
size: 10Gi
users:
admin:
password: SecureAdminPassword
appuser:
password: AppUserPassword456
monitoring:
password: MonitoringPassword789
Parametri utente:
| Parametro | Tipo | Descrizione |
|---|---|---|
users[name].password | string | Password associata all'utente |
Create utenti distinti per applicazione per un controllo degli accessi granulare. Utilizzate un account admin per l'amministrazione, account applicativi per servizio, e un account monitoring dedicato alla supervisione.
2. Applicare le modificheโ
kubectl apply -f nats-users.yaml
Monitorate il rolling update dei pod:
kubectl get po -w | grep my-nats
Attendete che tutti i pod siano nello stato Running:
kubectl get po | grep my-nats
Risultato atteso:
my-nats-0 1/1 Running 0 2m
my-nats-1 1/1 Running 0 4m
my-nats-2 1/1 Running 0 6m
3. Testare la connessione con la CLI natsโ
Aprite un port-forward verso il servizio NATS:
kubectl port-forward svc/my-nats 4222:4222
Testate la connessione con ogni utente:
Connessione con l'utente admin:
nats pub test "Hello from admin" \
--server nats://admin:SecureAdminPassword@127.0.0.1:4222
Risultato atteso:
Published 16 bytes to "test"
Connessione con l'utente appuser:
nats pub app.events "Hello from appuser" \
--server nats://appuser:AppUserPassword456@127.0.0.1:4222
Risultato atteso:
Published 18 bytes to "app.events"
Test con una password errata:
nats pub test "This should fail" \
--server nats://admin:wrongpassword@127.0.0.1:4222
Risultato atteso:
nats: error: Authorization Violation
Se external: true รจ attivato, il cluster NATS รจ accessibile dall'esterno del cluster Kubernetes. Assicuratevi che tutti gli utenti dispongano di password robuste.
4. Verificare le connessioni attiveโ
Potete verificare le connessioni attive sul cluster NATS:
nats server report connections \
--server nats://admin:SecureAdminPassword@127.0.0.1:4222
Risultato atteso:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Connection Report โ
โโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโค
โ Server โ Conns โ In Msgs โ Out Msgs โ In Bytes โ
โโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ my-nats-0โ 2 โ 5 โ 3 โ 128B โ
โ my-nats-1โ 1 โ 2 โ 1 โ 64B โ
โ my-nats-2โ 0 โ 0 โ 0 โ 0B โ
โฐโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโฏ
Per vedere il dettaglio delle connessioni per utente:
nats server report connz \
--server nats://admin:SecureAdminPassword@127.0.0.1:4222
Verificaโ
La configurazione รจ riuscita se:
- I pod NATS sono tutti nello stato
Runningdopo l'aggiornamento - Ogni utente puรฒ connettersi con la propria password
- Una password errata viene rifiutata (
Authorization Violation) - Le connessioni attive sono visibili nel report del server
Per approfondireโ
- Riferimento API NATS: documentazione completa dei parametri
users - Come configurare JetStream: attivare la persistenza dei messaggi e lo streaming