DOCKER MEETUP. Christophe Labouisse / @XtlCnslt



Documents pareils
Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

En ce moment (24/01/2014), Super bon plan: Micro Serveur HP Proliant G7 N54L à 159 ttc Plus d'informations sur dealabs.com

Réalisation d un portail captif d accès authentifié à Internet

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

Virtual Box Mettez un PC dans votre... PC

Machine virtuelle W4M- Galaxy : Guide d'installation

LXC : Une technologie de contextualisation ultra light intégrée au kernel Linux

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Exercice sur les Dockers

EN Télécom & Réseau S Utiliser VMWARE

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Vanilla : Virtual Box

But de cette présentation. Serveur DHCP (Application à CentOS) Cas des machines virtuelles. Schéma de principe. Hainaut P

Retrospect 7.7 Addendum au Guide d'utilisation

1/ Introduction. 2/ Schéma du réseau

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

contact@nqicorp.com - Web :

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Migration d un Cluster Fiber Channel+SAN+Lames sous Xen vers Ethernet +iscsi+serveurs sous KVM

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

Visualization sur Ubuntu: Quels Choix? Nicolas Barcet

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

OpenMediaVault installation

1. Présentation du TP

FreeNAS Shere. Par THOREZ Nicolas

UBUNTU Administration d'un système Linux (4ième édition)

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Cloud Computing. Groupe : Vincent, Mohammed, Yannick, Allan Tuteur : Mr. NUSSBAUM Lucas Année : 2009/2010

contact@nqicorp.com - Web :

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

A Libre Ouvert. Médiathèque Jacques Ellul. le

Atelier : Virtualisation avec Xen

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Présentation OpenVZ. Marc SCHAEFER. 9 janvier 2009

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

Configuration réseau Basique

À propos de Parallels Desktop 9 pour Mac

EN Télécom & Réseau S Utiliser VMWARE

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Simple Database Monitoring - SDBM Guide de l'usager

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Virtualisation et le hosting. Christophe Lucas Sébastien Bonnegent rouen.fr>

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Installer VMware vsphere

Le logiciel Netkit Installation et utilisation

DHCPD v3 Installation et configuration

Virtualisation sous Linux L'age de raison. Daniel Veillard

1. Warm up Activity: Single Node

Architecture de la plateforme SBC

Guide Installation Serveur Extensive Testing

Environnements informatiques

Service Cloud Recherche


Projet serveur OwnCloud

Virtualisation & Sécurité

À propos de Parallels Desktop 10 pour Mac

Cellier Clément, Maginot Quentin, Tripier Axel, Zaorski Jean, Zini Robin. 18 mars 2015

CASE-LINUX CRÉATION DMZ

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

VMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare

Situation professionnelle n X

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

Gérer ses environnements de développement avec Vagrant RMLL 2012

Réseau - VirtualBox. Sommaire

PROCEDURE ESX & DHCP LINUX

Tour des Unités du C.I.A.M. Tour des Unités du C.I.A.M. Maurice Baudry Laboratoire Statistique & Génome, Évry.

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

sshgate Patrick Guiran Chef de projet support

Chapitre IX : Virtualisation

TP SECU NAT ARS IRT ( CORRECTION )

1. Présentation du TP

EXALOGIC ELASTIC CLOUD MANAGEMENT

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

MODULE : MAINTENANCE DES STATIONS AVEC OSCAR

BTS SIO Dossier BTS. PURCHLA Romain

La virtualisation de serveurs avec VMWare Infrastructure - Retour d expérience. Rodérick Petetin CRI INSA Rennes

PROCÉDURE D'INSTALLATION

ManageEngine EventLog Analyzer. Les bonnes critiques et recommandations

TechSoftware Présentations

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Déploiement de stations et d'applications avec FOG

Vers une fédération de Cloud Académique dans France Grilles J. Pansanel pour le groupe FG-Cloud (M. Airaj, C. Cavet, V. Hamar, M. Jouvin, C.

Gestion des Appliances. M. AIRAJ Ecole Informatique IN2P

Tutoriel compte-rendu Mission 1

Zabbix. garder un oeil toujours ouvert. - Creative Commons BY-SA

- FICHE DE PROCEDURE - Configurer un serveur DNS avec Bind9 sur Debian

Architecture de serveurs virtualisés pour la communauté mathématique

Tutoriel déploiement Windows 7 via serveur Waik

Installer un serveur web de développement avec VirtualBox

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Transcription:

DOCKER MEETUP Christophe Labouisse / @XtlCnslt

#ME, #MYSELF AND #I CHRISTOPHE LABOUISSE Développeur Freelance Java mais pas que Côté front : Angular, Ionic Sous le capot : Linux, Docker

DOCKER @ HOME Retour sur l'installation & l'utilisation de Docker sur une machine dédiée Docker est souvent associé à des déploiements Cloud

POURQUOI? Utiliser une infrastructure existante Démonstration, transition plus simple Amusant & permet de mieux comprendre Docker

POINT DE DÉPART DÉDIBOX Quad-core, 16Go de RAM, 2To de disque UTILISATION Experimentation : Code Story, NoSQL, etc. Serveur Minecraft Supervision avec Zabbix

VIRTUAL MACHINES LIBVIRT SUR DEBIAN STABLE Ça marche bien Consommateur en resources Pas super flexible Installation compliquée

ÇA MARCHE BIEN Contrôle total des resources allouées à la VM Indépendance totale entre l'os de l'host et des VM Isolation entre les VM Bonnes performances grâce à kvm

VM VS CONTAINERS

FLEXIBILITÉ Allocation statique des resources Granularité par VM et non par service CONFIGURATION Fichier de configuration très (trop) complet décrivant toute la machine virtuelle Installation d'un OS complet pour chaque VM

INSTALLATION DOCKER

PLAN DE BATAILLE Tout sauvegarder Réinstallation à partir de zéro Installer & configurer Docker Tout sera en container Minecraft doit remarcher en 24 heures

INSTALLATION Installation à partir de l'image Ubuntu 14.04 LTS La version de Docker d'ubuntu n'est pas satisfaisante Elle renomme tout en docker.io Version ancienne (1.0.1 actuellement) Doc d'installation : http://xlct.it/1c43rag Installation à partir des binaires de Docker curl -ssl https://get.docker.com/ubuntu/ sudo sh

POST INSTALLATION création d'un groupe docker configuration de ufw (firewall) activation du memory & swap accounting

VICTOIRE > docker run --rm -ti busybox echo "Yeeeees" Yeeeees

LES IMAGES Google, Github & Docker Hub Un container = un service 90% d'images personnalisées sont nos amis

BILAN PARTIEL

MEILLEUR UTILISATION DES RESOURCES Un vingtaine de containers tournant en continu dont : NoSQL : MongoDB, ElasticSearch (2 serveurs) Jenkins : un serveur et deux esclaves Zabbix : serveur, base de données, web Applications : serveurs Minecraft, appli jhipster Pas de problème de mémoire

LES PROBLÈMES RAPIDE DÉMO

ÇA MARCHE BIEN MAIS Plein de process qui tournent avec l'utilisateur root Accès aux containers Supervision Ordonnancement

PROCESS SOUS ROOT

PROCESS SOUS ROOT Pas super grave Peut-être résolu dans les images USER xxx En utilisant un script de démarrage Résolution en cours avec le namespace user https://github.com/docker/docker/issues/7906 https://github.com/docker/docker/pull/11253

SUPERVISION L'outil de supervision est Zabbix mais il en existe d'autres Surveillance globale du host Surveillances des containers

AVANT Supervision avec Zabbix : agents sur le host et les VM

APRÈS Supervision avec Zabbix : un seul agent sur le host

SOLUTION NAÏVE Installer un agent Zabbix dans chaque container À l'opposé du principe un container = un service Pas génial en terme de consommation des resources Nécessite de n'utiliser que des images personnalisées

RÉCUPÉRATION DES INFORMATIONS Dans un premier temps on peut partir sur : Le nombre de containers Pour chaque container : Son adresse IP Son statut (running, paused, stopped, crashed) L'utilisation CPU L'utilisation mémoire L'actitivé réseau

MÉTRIQUES UTILISATEUR DE ZABBIX Zabbix est livré avec de nombreuses métriques prédéfinies Il est possible d'ajouter des métriques utilisateur Principe : L'utilisateur défini un script Zabbix lance le script régulièrement Le résultat constitue la valeur de la métrique

NOMBRE DE CONTAINERS PETITE DÉMO On compte facilement le nombre de containers en shell : Le nombre de containers en cours d'exécution : docker ps -q wc -l Le nombre de containers plantés : docker ps -a grep -v -F 'Exited (0)' \ grep -c -F 'Exited ('

LES MÉTRIQUES DES CONTAINERS LE SIMPLE La command magique est : docker inspect container L'adresse IP du container Son statut

LE MOINS SIMPLE Jérôme Petazzoni (@jpetazzo) Article de 2013 : Gathering LXC Docker Containers Metrics En résumé : aller fouiller dans /sys/fs/cgroup

DÉMO AND VOILÀ Ou pas! CPU & Mémoire Activité réseau

ACTIVITÉ RÉSEAU Les interfaces réseaux sont les namespaces network et non dans les cgroups Plusieurs interfaces par cgroup (lo, eth0, etc.) Les process d'un même cgroup peuvent appartenir à des namespaces différents Récupération en trois étapes : Localiser un process du container Créer un lien symbolique Récupérer les métriques avec ip netns exec

ACTIVITÉ RÉSEAU VERSION MOI Commande docker execà partir de Docker 1.3 On récupère l'activité réseau avec ifconfig eth0

IMPLÉMENTATION

SCRIPT DE COLLECTE Écrit en Python sauf pour le compte des containers Utilise la bibliothèque docker-py

ZABBIX ITEMS Définir le fichier /etc/zabbix/zabbix_agentd.confd host: UserParameter=docker.container.count[*],/usr/local/bin/containerCount.sh $ UserParameter=docker.container.helper[*],/usr/local/bin/containerHelper.py Déclaration des items :

ZABBIX HOSTS Host name doit être exactement le nom du containers IP address est l'adresse IP du host

DOCKER 1.5 Docker 1.5 : command docker stats Stream l'ensemble des métriques d'un container Plus efficace car on push vers Zabbix Script de Tristan Carel

ACCÈS AUX CONTAINERS On peut publier les ports exposés par un container Les links permettent aux containers de communiquer Le host peut aussi accéder directement aux containers

PUBLIER LES PORTS Container 1 : -p80:8080 Container 2 : -p8080ou -P

LIENS ENTRE CONTAINER Container 2 : --link Container1:service

ACCÈS DIRECT Pas de configuration Pas de problème pour trouver le n de port

PROBLÈME DE L'ACCÈS DIRECT L'adresse IP est alloué au démarrage du container Pas de moyen simple de la retrouver

DNS DYNAMIQUE DÉMO On utilise la commande docker events On récupère l'adresse IP Mise à jour de bind

ORCHESTRATION

DES PROBLÈMES, TOUJOURS DES PROBLÈMES Au (re)démarrage, Docker ne démarre rien par défaut On peut forcer le redémarrage des containers par docker Mais pas définition des dépendances En cas d'upgrade d'une image on perd les arguments de création

DOCKER-COMPOSE (EX FIG) Orchestration light Application = plusieurs services Fichier de définition de l'application Commande pour gérer l'application

FICHIER DE CONFIGURATION server: image: jenkins:weekly ports: - "18080:8080" volumes: - /data/docker/jenkins/server-1:/var/jenkins_home swarm: image: ggtools/jenkins-swarm-slave-compass links: - server:jenkins command: -username swarm -password 'DoUThink14mStupid' -executors 2 -name jenki swarmdocker: image: ggtools/jenkins-swarm-slave-docker links: - server:jenkins command: -username swarm -password 'DoUThink14mStupid' -executors 2 -name jenki

QUELQUES COMMANDES builder et lancer l'application : docker-compose up [-d] Lancer une application sans build : docker-compose start Et plein d'autres : ps, kill, port, scale, etc.

CONCLUSION Et après? Docker Swarm Kurbernetes Mesos Cloud Hybride

RÉFÉRENCES https://github.com/ggtools/docker-tools https://github.com/dockermeetupsinbordeaux/docker-zabbix-sender http://xlct.it/dockerathome

QUESTIONS?