Intégration de Kubernetes avec le registre de conteneurs privés d’Esadax

Auteur:Nils Krämer
Mise à jour:21 août 2025

Voici comment intégrer le registre de conteneurs privés d’Esadax avec Kubernetes en utilisant imagePullSecrets — ainsi que des conseils facultatifs sur la mise en miroir vers GitHub Container Registry (GHCR).


Kubernetes: Pulling from Esadax’s Registry

Pour extraire des images de conteneur privées hébergées sur esadax-registry.esadax.sh, vous devez créer un secret Kubernetes et le référencer dans votre déploiement ou vos spécifications de pod.


Étape 1: Créer un secret de registre 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

💡 Remplacez your_token par un jeton d’accès personnel ou jeton CI d’Esadax. Vous pouvez renommer esadax-registry-creds selon les besoins de votre environnement.


Étape 2 : Référencer le secret dans un déploiement

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

✅ Une fois déployé, Kubernetes utilisera le secret référencé pour s’authentifier avec le registre d’Esadax et extraire votre image.


Facultatif: Miroir vers GitHub Container Registry (GHCR)

Si vous souhaitez mettre en miroir vos images sur GHCR (par exemple, pour la redondance ou le partage public), suivez ces étapes.

Étape 1: Authentifier et pousser

# 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

Assurez-vous que le dépôt GitHub est public ou correctement configuré pour un accès privé avec fine-grained personal access tokens.


📌 Meilleures pratiques

  • Utilisez des secrets au niveau de l'espace de noms pour partager les informations d'identification entre plusieurs déploiements.
  • Générez des jetons séparés pour les pipelines CI/CD et l'accès humain.
  • Rotation périodique des jetons et audit des accès pour la conformité à la sécurité.
  • Ajoutez imagePullSecrets globalement à l'aide d'un ServiceAccount, si votre environnement le prend en charge.