Integrazione di Kubernetes con il Private Container Registry di Esadax

Autore:Nils Krämer
Aggiornato:21 ago 2025

Ecco come integrare il Private Container Registry di Esadax con Kubernetes utilizzando imagePullSecrets — oltre a una guida opzionale sul mirroring su GitHub Container Registry (GHCR).


Kubernetes: Pulling dal Registro di Esadax

Per estrarre le immagini private del contenitore ospitate in esadax-registry.esadax.sh, dovrai creare un segreto Kubernetes e farvi riferimento nella distribuzione o nelle specifiche del pod.


Passaggio 1: creare un segreto di registro Docker

kubectl create secret docker-registry esadax-registry-creds \
  --docker-server=esadax-registry.esadax.sh \
  --docker-username=your_username \
  --docker-password=your_token \
  --docker-email=your@email.com

💡 Sostituire your_token con un token di accesso personale o un token CI di Esadax. È possibile rinominare esadax-registry-creds in base alle esigenze dell'ambiente.


Passaggio 2: fare riferimento al segreto in una distribuzione

apiVersion: apps/v1
kind: Deployment
metadata:
  name: private-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: private-app
  template:
    metadata:
      labels:
        app: private-app
    spec:
      containers:
        - name: app
          image: esadax-registry.esadax.sh/my-project/my-app:latest
          ports:
            - containerPort: 80
      imagePullSecrets:
        - name: esadax-registry-creds

✅ Una volta distribuito, Kubernetes utilizzerà il segreto di riferimento per autenticarsi con il registro di Esadax e estrarre la tua immagine.


Facoltativo: Mirror su GitHub Container Registry (GHCR)

Se si desidera eseguire il mirroring delle immagini su GHCR (ad esempio, per ridondanza o condivisione pubblica), seguire questi passaggi.

Passaggio 1: autenticazione e push

# Authenticate to GHCR
echo $GHCR_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin

# Tag the existing image
docker tag esadax-registry.esadax.sh/my-project/my-app:latest ghcr.io/YOUR_GITHUB_USERNAME/my-app:latest

# Push to GitHub
docker push ghcr.io/YOUR_GITHUB_USERNAME/my-app:latest

Assicurati che il repository GitHub sia pubblico o configurato correttamente per l'accesso privato con fine-grained personal access tokens.


📌 Migliori pratiche

  • Usa i segreti a livello di spazio dei nomi per condividere le credenziali tra più distribuzioni.
  • Genera token separati per pipeline CI/CD e accesso umano.
  • Periodicamente ruota i token e verifica l'accesso per la conformità alla sicurezza.
  • Aggiungere imagePullSecrets globalmente utilizzando un ServiceAccount, se l'ambiente lo supporta.