Aller au contenu

Deployer une image docker

Passer du local à Kubernetes ?

Pour passer d’une image qui tourne localement à une image déployée dans votre namespace il y a plusieurs grandes étapes que nous allons détailler ensemble:

  1. Avoir une image déjà buildée et stockée dans un registry.
  2. Créer un access token dans votre registry
  3. Créer un pull secret dans votre namespace pour que pour que Kubernetes puisse se connecter au registry et récupérer des images
  4. Créer un déploiement Kubernetes pour y faire tourner votre image

Créer un access token

Depuis votre projet Gitlab allez dans la section Settings > Acces tokens et sur la page listant les tokens existants, cliquez sur Add new token.

Cette page est directement accessible à l’URL https://gitlab.blackswift.cloud/[project-name]/-/settings/access_tokens où [project-name] est le nom de votre project/organisation.

Dans le nouvel écran:

  • Choisissez un nom d’utilisateur. Par exemple blackswift-deploy
  • Choissiez le rôle “Reporter”
  • Cochez seulement la permission read_registry
  • Mettez la date d’expiration que vous souhaitez

Création d'un access token

Cliquez sur Create project acces token quand c’est fait.

Vous devriez être de retour sur la page listant les tokens. Avec un nouvel encart vous indiquant le mot de passe du token. Notez le couple login + mot de passe et nous pouvons passer à l’étape suivante.

Confirmation de la création du token

Créer un pull secret

Maintenant que nous avons un utilisateur côté registry, nous devons permettre à Kubernetes de l’utiliser et cela se fait via la création d’un pull secret.

Il ne s’agit pas ici de s’adonner au tricot à l’abri des regards, mais bien de créer un secret au sens Kubernetes du terme qui permettra de pull une image Docker depuis un registry.

Pour cela, si votre configuration locale kubeconfig vous permet déjà de vous connecter au cluster, entrez simplement cette commande en local:

Fenêtre de terminal
k -n [votre-namespace] create secret docker-registry registry-pullsecret --docker-server=registry.gitlab.blackswift.cloud --docker-username=[access-token-login] --docker-password=[access-token-password]

Cela devrait créer un nouveau secret dans votre namespace, que nous allons utiliser tout de suite pour enfin déployer cette image dans votre namespace !

Utiliser le pull secret dans un déploiement

Pour l’utiliser c’est assez simple, créez un nouveau déploiement sur Rancher ou modifiez-en un existant. Dans le champ Container image entrez le nom de votre image sur le registry. Par exemple:

registry.gitlab.blackswift.cloud/[chemin-vers-votre-projet]:[image-name]

Et juste en dessous dans le champ “Pull secret choisissez le secret créer à l’étape précédente dans la liste. Cela devrait donner quelque chose comme:

Configuration container Rancher

Si le déploiement arrive à démarrer il ne vous reste plus qu’à le rendre accessible sur le web ! Cela se passe à l’étape suivante pour configurer Kubernetes pour exposer votre application.