3 étapes pour commencer à gérer des conteneurs dès aujourd’hui


  • FrançaisFrançais


  • Que vous soyez intéressé par eux dans le cadre de votre travail, pour de futures opportunités d’emploi ou simplement par intérêt pour les nouvelles technologies, les conteneurs peuvent sembler assez écrasants, même pour un administrateur système expérimenté. Alors, comment démarrer avec les conteneurs ? Et quel est le chemin entre les conteneurs et Kubernetes ? Aussi, pourquoi y a-t-il un chemin de l’un à l’autre ? Comme vous vous en doutez, le meilleur endroit pour commencer est le début.

    1. Comprendre les conteneurs

    À la réflexion, commencer par le début remonte sans doute au début de BSD et à leurs prisons chroot spéciales, alors passez plutôt au milieu.

    Il n’y a pas si longtemps, le noyau Linux a introduit groupes de contrôlequi vous permet de “taguer” les processus avec quelque chose appelé un espace de noms. Lorsque vous regroupez des processus dans un espace de noms, ces processus agissent comme si rien en dehors de cet espace de noms n’existait. C’est comme si vous aviez placé ces processus dans une sorte de conteneur. Bien sûr, le conteneur est virtuel et il existe à l’intérieur de votre ordinateur. Il s’exécute sur le même noyau, la même RAM et le même processeur que le reste de votre système d’exploitation, mais vous avez contenu les processus.

    Les conteneurs préfabriqués sont distribués avec juste ce qui est nécessaire pour exécuter l’application qu’ils contiennent. Avec un moteur de conteneur, comme Podman, Docker ou CRI-O, vous pouvez exécuter une application conteneurisée sans l’installer au sens traditionnel. Les moteurs de conteneurs sont souvent multiplateformes, donc même si les conteneurs exécutent Linux, vous pouvez lancer des conteneurs sur Linux, macOS ou Windows.

    Plus important encore, vous pouvez exécuter plusieurs conteneurs de la même application en cas de forte demande.

    Maintenant que vous savez ce qu’est un conteneur. La prochaine étape consiste à en exécuter un.

    [ Get the cheat sheet: What’s the difference between a pod, a cluster, and a container? ]

    2. Exécutez un conteneur

    Avant d’exécuter un conteneur, vous devez avoir une raison d’exécuter un conteneur. Vous pouvez inventer une raison, mais il est utile que cette raison vous intéresse, de sorte que vous êtes réellement inspiré pour utiliser le conteneur que vous exécutez. Après tout, exécuter un conteneur sans jamais utiliser l’application qu’il fournit prouve seulement que vous ne remarquez aucun échec, mais l’utilisation du conteneur démontre que cela fonctionne.

    Je recommande WordPress pour commencer. Il s’agit d’une application Web populaire et facile à utiliser. Vous pouvez donc tester l’application une fois que le conteneur est en cours d’exécution. Bien que vous puissiez facilement configurer un conteneur WordPress, il existe de nombreuses options de configuration, qui peuvent vous amener à découvrir plus d’options de conteneur (comme l’exécution d’un conteneur de base de données) et la façon dont les conteneurs communiquent.

    J’utilise Podman, qui est un moteur de conteneur convivial, pratique et sans démon. Si vous ne disposez pas de Podman, vous pouvez utiliser la commande Docker à la place. Les deux sont d’excellents moteurs de conteneurs open source, et leur syntaxe est identique (il suffit de taper docker au lieu de podman). Parce que Podman n’exécute pas de démon, il nécessite plus de configuration que Docker, mais la possibilité d’exécuter des conteneurs sans démon sans racine en vaut la peine.

    Si vous optez pour Docker, vous pouvez passer directement à la Sous-titre WordPress. Sinon, ouvrez un terminal pour installer et configurer Podman :

    $ sudo dnf install podman

    Les conteneurs génèrent de nombreux processus et, normalement, seul l’utilisateur racine est autorisé à créer des milliers d’ID de processus. Ajoutez des ID de processus supplémentaires à votre utilisateur en créant un fichier appelé /etc/subuid et définir un UID de démarrage suffisamment élevé avec un grand nombre approprié de PID autorisés :

    seth:200000:165536

    Faites de même pour votre groupe dans un fichier appelé /etc/subgid. Dans cet exemple, mon groupe principal est staff (c’est possible users pour vous, ou le même que votre nom d’utilisateur, selon la façon dont vous avez configuré votre système.)

    staff:200000:165536

    Enfin, confirmez que votre utilisateur est également autorisé à gérer des milliers d’espaces de noms :

    $ sysctl --all --pattern user_namespaces
    user.max_user_namespaces = 28633

    Si votre utilisateur n’est pas autorisé à gérer au moins 28 000 espaces de noms, augmentez le nombre en créant le fichier /etc/sysctl.d/userns.conf et entrez :

    user.max_user_namespaces=28633

    Exécuter WordPress en tant que conteneur

    Désormais, que vous utilisiez Podman ou Docker, vous pouvez extraire un conteneur WordPress d’un registre de conteneurs en ligne et l’exécuter. Vous pouvez faire tout cela avec une seule commande Podman :

    $ podman run --name mypress \
    -p 8080:80 -d wordpress

    Donnez à Podman quelques instants pour trouver le conteneur, le copier depuis Internet et le démarrer.

    Démarrez un navigateur Web une fois que vous avez reçu une invite de terminal et accédez à localhost:8080. WordPress est en cours d’exécution, vous attend pour le configurer.

    Cependant, il ne faut pas longtemps pour atteindre votre prochain obstacle. WordPress utilise une base de données pour garder une trace des données, vous devez donc lui fournir une base de données où il peut stocker ses informations.

    Avant de continuer, arrêtez et supprimez le conteneur WordPress :

    $ podman stop mypress
    $ podman rm mypress

    3. Exécutez des conteneurs dans un pod

    Les conteneurs sont, de par leur conception et, comme leur nom l’indique, autonomes. Une application s’exécutant dans un conteneur n’est pas censée interagir avec des applications ou une infrastructure en dehors de son conteneur. Ainsi, lorsqu’un conteneur nécessite un autre conteneur pour fonctionner, une solution consiste à placer ces deux conteneurs dans un conteneur plus grand appelé un cosse. Un pod garantit que ses conteneurs peuvent partager des espaces de noms importants pour communiquer entre eux.

    Créez un nouveau pod, en fournissant un nom pour le pod et les ports auxquels vous souhaitez pouvoir accéder :

    $ podman pod create \
    --name wp_pod \
    --publish 8080:80

    Vérifiez que le pod existe :

    $ podman pod list
    POD ID        NAME     STATUS    INFRA ID      # OF CONTAINERS
    100e138a29bd  wp_pod   Created   22ace92df3ef   1

    Ajouter un conteneur à un pod

    Maintenant que vous avez un pod pour vos conteneurs interdépendants, vous lancez chaque conteneur en spécifiant un pod dans lequel il doit s’exécuter.

    Tout d’abord, lancez une base de données. Vous pouvez créer vos propres informations d’identification tant que vous utilisez ces mêmes informations d’identification lors de la connexion à la base de données à partir de WordPress.

    $ podman run --detach \
    --pod wp_pod \
    --restart=always \
    -e MYSQL_ROOT_PASSWORD="badpassword0" \
    -e MYSQL_DATABASE="wp_db" \
    -e MYSQL_USER="tux" \
    -e MYSQL_PASSWORD="badpassword1" \
    --name=wp_db mariadb

    Ensuite, lancez le conteneur WordPress dans le même pod :

    $ podman run --detach \
    --restart=always --pod=wp_pod \
    -e WORDPRESS_DB_NAME="wp_db" \
    -e WORDPRESS_DB_USER="tux" \
    -e WORDPRESS_DB_PASSWORD="badpassword1" \
    -e WORDPRESS_DB_HOST="127.0.0.1" \
    --name mypress wordpress

    Lancez maintenant votre navigateur Web préféré et accédez à localhost:8080.

    Cette fois, la configuration se passe comme prévu. WordPress se connecte à la base de données car vous avez transmis ces variables d’environnement lors du lancement du conteneur.

    Après avoir créé un compte utilisateur, vous pouvez vous connecter pour voir le tableau de bord WordPress.

    Prochaines étapes

    Vous avez créé deux conteneurs et vous les avez exécutés dans un pod. Vous en savez maintenant assez pour exécuter des services dans des conteneurs sur votre propre serveur. Si vous souhaitez passer au cloud, les conteneurs sont, bien sûr, bien adaptés à cela. Avec des outils comme Kubernetes et OpenShift, vous pouvez automatiser le processus de lancement conteneurs et pods sur un cluster. Si vous envisagez de passer à l’étape suivante, lisez 3 façons de démarrer avec Kubernetes par Kevin Casey, et essayez le tutoriel Minikube qu’il mentionne.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code