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:
- Avoir une image déjà buildée et stockée dans un registry.
- Créer un access token dans votre registry
- Créer un pull secret dans votre namespace pour que pour que Kubernetes puisse se connecter au registry et récupérer des images
- 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
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.
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:
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:
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.