Introduction à kubernetes

Qu’est ce que Kubernetes ?

C’est un orchestrateur de container, il permet de d’automatiser le déploiement des applications en container. (Architecture dynamique) Il est open source.
kubernetes va gérer le bon fonctionnement de nos applications via la déclaration d’un « état souhaité » (nombre de CPU, RAM, réplicat ext …)

Avantages :
Vitesse de déploiement, notion de micro service
Capacité à absorber rapidement les changements
Capacité à récupérer rapidement (Perte de l’état souhaité, correction rapide)
Abstraction de la complexité du cluster, charge à l’administrateur de définir l’environnement pour le développeur qui peut se concentrer sur l’application.

Principe de Kubernetes
On va définir notre application kubernetes dans une configuration déclarative (état souhaité ou manifeste). Suite à cela Kubernetes va tout mettre en œuvre pour conserver l’état inscris dans notre déclaration.(Via les objets contrôleurs, qui vont vérifier régulièrement l’état du cluster)
A l’opposé de ce mode de fonctionnement actuellement on travail de façon impérative. (Administration manuel d’un SI, ajout de ressources CPU/RAM ext …)
On va pouvoir interagir avec Kubernetes via son serveur API.

Principe de l’API Kubernetes

Kubernetes est constitué d’une collection de primitives qui représentent l’état du système.
Pour intéragir avec Kubernetes on va passer par l’API RESTful qui s’exécute en HTTP ou HTTPS via le format JSON stocké dans une BDD interne.

Quelques objets de Kubernetes

  • POD : Un seul ou plusieurs container que l’on va déployer comme une « unité »
  • Contrôleur : Permette de maintenir notre cluster dans l’état souhaité
  • Service : Fournisse un point d’accès permanent dans l’application
  • Stockage : Appelé volume, cela permet de stocker les données de façon persistantes

Détail sur les PODS
Un POD est une unité de travail élémentaire (la plus petite pour kubernetes), il peut contenir un ou plusieurs container. Kubernetes va gérer notre POD, pas le container. Il va contenir notre application. Si le container interne au pod disparait, le POD disparait avec lui, même réaction dans le cas d’un POD multi container.
Le travail de Kubernetes sera donc de garder en état de fonctionnement notre POD, il va suivre son état. On va utiliser des sondes d’activité afin de surveiller le bon fonctionnement de notre application, « Liveness Probes ». (Ping vers un serveur WEB par exemple pour vérifier la bonne réponse du serveur WEB dans le POD)

Continuer la lecture de Introduction à kubernetes

Gestion de Disques Durs avec LVM

LVM se compose de trois éléments :

  • Physical Volumes (PV) – Disques Physiques (ex: /dev/sda, /dev/sdb …..)
  • Volume Groups (VG) – Les volumes Physiques sont assemblés en Volumes groupes (ex: vg0 = /dev/sda + /dev/sdb)
  • Logical Volumes (LV) – Les volumes groups sont divisés en volumes logiques (ex: vg0 divisé en vg0/home, vg0/sauvegarde …..)

Dans cette procédure on va ajouter un nouveau disque dur pour étendre l’espace disque disponible de 30go à 40go.

On commence par lister les volumes physiques disponible

pvs
pvdisplay

On peut à présent lister le VG

vgs
vgdisplay

Continuer la lecture de Gestion de Disques Durs avec LVM

Mémo rapide OpenStack

OpenStack est un ensemble de logiciels open source permettant de déployer des infrastructures de cloud computing (infrastructure en tant que service). La technologie possède une architecture modulaire composée de plusieurs projets corrélés (Nova, Swift, Glance…) qui permettent de contrôler les différentes ressources des machines virtuelles telles que la puissance de calcul, le stockage ou encore le réseau inhérents au centre de données sollicité.

Continuer la lecture de Mémo rapide OpenStack

Monitoring Open Source avec Prometheus

Dans ce billet je présente une courte procédure afin de déployer une solution de monitoring open source avec Prometheus et Pushgateway. On pourra générer des graphiques avec Grafana accessible via une interface web. Le billet présente le déploiement et pas une configuration poussée de grafana qui fera l’objet d’un autre billet. A la fin de ce billet vous aurez un aperçu et une suite fonctionnel pour un labo.

Continuer la lecture de Monitoring Open Source avec Prometheus

Installer Nginx avec PHP7.0 et modification basique de son index sous Ubuntu 16.04

Présentation d’une courte procédure pour setup nginx avec php7.0 et modifier « index.nginx-debian.html » vers « index.php » dans un lab

Continuer la lecture de Installer Nginx avec PHP7.0 et modification basique de son index sous Ubuntu 16.04

Déploiement Serveur de Paiement Bitcoin avec btcpayserver

L’ensemble du billet se déroule dans un environnement Ubuntu 16.04. btcpayserver va permettre de créer un serveur de paiement pour Bitcoin et d’autres cryptos dérivées. Il est impératif pour bien fonctionner de faire tourner un full node bitcoin (Bitcoin Core Wallet pour créer des invoices manuellement, Electrum ou Ledger pour automatiser la creation des invoices) ainsi qu’un explorateur de bloc (NBXplorer)

Continuer la lecture de Déploiement Serveur de Paiement Bitcoin avec btcpayserver

Déploiement d’un Full Node Bitcoin

Mon fichier est de configuration ci-dessous est utilisé dans mon lab de test sur le testnet et n’est pas accessible de l’exterieur. Il dispose d’une bonne configuration (32Go de Ram) Pensez à l’adapter suivant votre configuration.Le prune mode permet d’éviter le télécharger des anciens blocs ce qui réduit considérablement la taille de stockage nécessaire.
Le dbcache a 2048 accélère également la synchronisation mais si vous avez une petite config réduisez cette valeur pour l’adapter. Dans le fichier de conf ci-dessous j’ai également modifié le dossier de stockage avec un autre datadir, par défaut il est dans ~/.bitcoin sous linux/mac.

Téléchargement et décompression du binaire bitcoin core, pensez à vérifier la version pour être toujours à jour.

wget https://bitcoin.org/bin/bitcoin-core-0.17.1/bitcoin-0.17.1-x86_64-linux-gnu.tar.gz && \
tar -xvzf bitcoin-0.17.1-x86_64-linux-gnu.tar.gz && \

Continuer la lecture de Déploiement d’un Full Node Bitcoin

Déploiement de NBXplorer un explorateur de transactions Bitcoin

Déploiement et installation de l’explorateur de bloc NBxplorer. Il est conseillé dans la documentation de ne l’utiliser que sur un réseau local. Explorateur de transactions, supporte P2SH,P2PKH,P2WPKH,P2WSH et Multi-sig derivation. Actuellement il supporte les coin suivants :

  • Bitcoin Gold (BTG)
  • Bitcoin Plus (XBC)
  • Bitcore (BTX)
  • Dash (DASH)
  • Dogecoin (DOGE)
  • Feathercoin (FTC)
  • Groestlcoin (GRS)
  • Litecoin (LTC)
  • Monacoin (MONA)
  • Polis (POLIS)
  • Viacoin (VIA)

Cet explorateur est utilisé dans le déploiement de la solution de paiement btcpayserver.

Continuer la lecture de Déploiement de NBXplorer un explorateur de transactions Bitcoin

Monter Disque dur au démarrage Ubuntu 16.04

Procédure rapide pour monter un nouveau disque dur dans un système Ubuntu 16.04 à l’aide de lsblk. La partition sera formaté en ext4 sans utiliser lvm.

On liste les disques de notre système

sudo lsblk

On repère le nouveau disque dur, dans mon example il s’agit de sdb

vmusertest@laintimes.com:~$ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0  100G  0 disk
├─sda1                        8:1    0  731M  0 part /boot
├─sda2                        8:2    0    1K  0 part
└─sda5                        8:5    0 99,3G  0 part
  ├─ubuntuserver--vg-root   252:0    0 98,3G  0 lvm  /
  └─ubuntuserver--vg-swap_1 252:1    0  976M  0 lvm  [SWAP]
sdb                           8:16   0  500G  0 disk
sr0                          11:0    1 1024M  0 rom

Continuer la lecture de Monter Disque dur au démarrage Ubuntu 16.04

Ajout de ndd avec dnsmasq sur Ubuntu 16.04

Pour ajouter rapidement des alias répondant sur votre lan, utilisez la procédure ci-dessous. Pour fonctionner indiquez à votre dhcp le serveur dnsmasq en dns primaire.

Pour réaliser cela on va indiquer à dnsmasq d’utiliser un fichier hosts personnalisé et lui spécifier de ne pas écouter le fichier hosts de la machine hôte.

Continuer la lecture de Ajout de ndd avec dnsmasq sur Ubuntu 16.04