SQLSaturday #993 – Paris 2020

Oyez ! Oyez ! Oyez !

Le SQLSaturday 993 est sur les rails !!!

Réservez votre Samedi 6 Juin et rendez-vous à Paris au 253 pour une journée d’échange autour de SQL Server. Et plus, car on ne change pas une équipe qui gagne. L’an dernier vous avez été nombreux à participer au Power Saturday, nous avons donc décidé de poursuivre sur la même formule.

Vous aurez donc droit à des sessions PowerBI, mais également Office 365, et peut être même un peu de Sharepoint ou Flow !

Cela dépendra des sessions qui seront postées ! Vous vous sentez l’âme d’un speaker ? Nous vous accueillons avec plaisir 

Vous pouvez proposer vos sessions sur le site Sessionize (https://sessionize.com/power-saturday-2020 ) et sur le site du SQLSaturday (https://www.sqlsaturday.com/993/Sessions/SubmittedSessions.aspx ) pour les sessions relatives à la plateforme de données.

Si vous hésitez, un peu de trac, nous pouvons organiser des sessions de mentoring voire même coprésenter avec vous si cela peut vous rassurer !

Happy Power Saturday !

Publié dans Evènements, Conférence | Tagué , | Laisser un commentaire

Azure – Latence réseau inter régions

En bon IT-Pro qui se respecte, je garde un œil sur mes métriques. OnPrem, je pense que vous disposez de tout le nécessaire, que ce soit à base de Nagios, Cacti, Zabbix, Centreon, PRTG et consorts …

Lorsque l’on travaille « OnPrem », la latence réseau est négligeable (ou du moins elle doit l’être !). Dès qu’il s’agit d’application Cloud, cette métrique n’est pas négligeable, forçant les développeurs à parfois penser différemment leur code afin de limiter le nombre d’aller-retours entre le client et le serveur.

Et tant qu’à profiter de la puissance du cloud, autant mondialiser vos applications, et pourquoi pas utiliser de la géo-réplication SQL Azure pour pousser des données aux 4 coins du monde et les rapprocher des utilisateurs ? Azure propose ainsi des DataCenters répartis dans le monde entier (ou presque).

A toutes fins utiles, voici un tableau des latences réseau entre les différentes régions Azure.

Ces données datent de Janvier 2020. Vous pouvez trouver des données actualisées à l’adresse https://docs.microsoft.com/en-us/azure/networking/azure-network-latency

On peut noter que le Brexit n’a pas affecté la latence UK South et UK West vers France Central (7 et 8 ms). On sent la rigueur Allemande qui focalise sur des nombres ronds (10 et 20 ms). Notez aussi que nous, amateurs de Chocolatines, mettons 8ms pour aller chercher le chocolat en Suisse (Ouest) alors qui faut 11ms pour constituer un pain au chocolat. Comme quoi, la vérité sort du réseau.

Just kidding 🙂

Happy networking

Publié dans Azure, Non classé | Tagué | Laisser un commentaire

Azure SQL Database – Créer un xEvent

Un des freins à l’adoption remonté par mes clients concernant Azure SQL Databases est sans conteste la perte de maitrise de la part du DBA.

Même si je fais partie des « vieux » DBA, j’ai appris que quand le vent souffle il est préférable de construire un moulin plutôt qu’un mur. Depuis plus d’une décennie déjà un pan de notre activité a disparue avec la virtualisation. Et cela devrait continuer avec la containerisation.

Et pour autant, les DBAs ont autant de travail. Il faut dire que le nombre d’instances / bases explose, les types de stockage de multiplient avec en point de mire le fameux « Big Data ».

Bref, je pense que notre métier ne va pas disparaitre, mais de toute évidence il se transforme. D’administrateur de bases de données, nous devons devenir administrateur de données.

En première ligne des « nouveautés » à appréhender figure Azure SQL Databses. Nouveauté avec des guillemets car cela fait 10 ans (la maturité ?) que le service existe … Oui, il est présent depuis le lancement de Azure, SQL Server faisait partie des premières offres de services !!!

Avec SQL Azure, les tâches à effectuer sont légèrement différentes. Je reste persuadé que le travail d’optimisation opéré par le DBA devient crucial une fois basculé sur du PaaS. Et il faut avouer que l’optimisation, le gain de performance, offre une certaine satisfaction, voire reconnaissance (en revanche, on ne m’a jamais félicité pour un backup réussi !).

Corolaire, il faut auparavant déterminer les goulets d’étranglement, les requêtes posant des problèmes de performance, un nombre de lectures logiques trop important… Le portail Azure propose des fonctionnalités, mais ne brusquons par le DBA, capitalisons sur les acquis …

Les évènements étendus …

Cela fait un certain temps que je vous suggère de franchir le pas, de passer du Profiler au xEvents.

Il ne vous aura pas échappé que les sessions d’évènement sont disponibles dans la base de données à compter du moment où vous êtes connectés sur un « serveur » Azure SQL.

Il est possible de stocker le résultat de la trace en mémoire, le fameux « Ring buffer » mais également sous forme de fichier… Mais comment traiter la notion de « fichier » lorsque l’on n’a pas accès au système d’exploitation ?

Azure propose la notion de Conteneurs dans un compte de stockage. Et c’est précisément cela que nous allons utiliser.

Dans un premier temps, il faut créer une master key et un credential pour donner accès au compte de stockage. Depuis SQL Server 2016, il est possible de créer un credential dans une base de données.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘aSuperS3cretP@ssw0rd!’
GO


CREATE DATABASE SCOPED CREDENTIAL
        [https://conseilitazurefile.blob.core.windows.net/sqlserver-xevent-files]
    WITH
        IDENTITY = ‘SHARED ACCESS SIGNATURE’,  
        SECRET = ‘sv=………………’
    ;
GO

Une fois fait, il suffit de créer la session d’évènement étendu. Notez le « ON DATABASE ».

CREATE EVENT SESSION [Long running Queries] ON DATABASE 
ADD EVENT sqlserver.blocked_process_report(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)),
ADD EVENT sqlserver.rpc_completed(SET collect_statement=(1)
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)
    WHERE ([package0].[equal_boolean]([sqlserver].[is_system],(0)) AND [package0].[greater_than_equal_uint64]([duration],(250000)))),
ADD EVENT sqlserver.sql_batch_completed(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)
    WHERE ([package0].[equal_boolean]([sqlserver].[is_system],(0)) AND [package0].[greater_than_equal_uint64]([duration],(250000))))
ADD TARGET package0.event_file(SET filename=N’https://conseilitazurefile.blob.core.windows.net/sqlserver-xevent-files/adventureworks-
ongrunningqueires.xel’)
WITH (MAX_MEMORY = 10 MB, MAX_DISPATCH_LATENCY = 10 SECONDS)

Le code pour démarrer la session est identique, au scope près.

ALTER EVENT SESSION [Long running Queries] ON DATABASE
STATE = START;

Tous les évènements ne sont pas disponibles sur SQLAzure, contrairement à SQL Server. La requête suivante permet de les lister.

SELECT
        o.object_type,
        p.name         AS [package_name],
        o.name         AS [db_object_name],
        o.description  AS [db_obj_description]
    FROM
                   sys.dm_xe_objects  AS o
        INNER JOIN sys.dm_xe_packages AS p  ON p.guid = o.package_guid
    WHERE
        o.object_type in
            (
            ‘action’,  ‘event’,  ‘target’
            )
    ORDER BY
        o.object_type,
        p.name,
        o.name;

L’évènement Blocked Process Report comporte un paramétrage côté serveur, mais qui ici n’est pas accessible. La valeur est fixée à 20 secondes.

Pour lire les données, la fonction est identique : sys.fn_xe_file_target_read_file :

SELECT
        *,
        CAST(event_data AS XML) AS [event_data_XML]  
    FROM
        sys.fn_xe_file_target_read_file
            (
                ‘https://conseilitazurefile.blob.core.windows.net/sqlserver-xevent-files/adventureworks-longrunningqueires’,
                null, null, null
            );
GO

Le champs XML vous donnera le détail des informations de l’évènement, comme auparavant …

Comme quoi les « vieux » outils ne sont pas à jeter lors du passage au Cloud !

Happy xEvents

Publié dans Azure, Non classé, SQL Azure | Tagué , | Laisser un commentaire

Nouvel ordinateur portable, nouveaux outils …

Après 4 ans de bon et loyaux services, mon X1 Carbon m’a lâché. Je n’ai aucune action chez Lenovo, j’avais du Dell auparavant et un HP il y a une dizaine d’années. Mais j’avoue avoir prix goût au X1, clavier très agréable, l’écran 14 » offre un bon compromis entre mobilité et agrément. Bref, a l’usage des touches se sont cassées ( !!! ). Il était temps d’en changer. Compte tenu des délai de livraison (parfois 6 semaines ??!!!??? on parle entre professionnels là, vraiment raisonnable ? ) j’ai fait au plus rapide et reçu un nouvel … X1. J’avoue avoir été tenté par le nouvel XPS13, un écran … waou. Mais je trouve le clavier un peu étriqué et il me fallait attendre près de 3 semaines !

J’avoue tout le fait de devoir réinstaller tous les logiciels utiles au quotidien est plutôt à classer dans la catégorie calvaire.

Mais au détour de quelques « Next Next Next Finish », il y a des petits bonus…

Première point, le nouveau terminal Windows, bien qu’en Preview me parait indispensable … Rendez-vous dans le store Microsoft et recherchez « Terminal ». Lancez l’installation et patientez …

Une fois terminé, on retrouve une interface actuelle, avec des onglets qui permet de passer rapidement d’une ligne de commande, à du PowerShell et même du CLI Azure.

Le flou sur l’image de fond de mon bureau est « par défaut », je n’ai flouté que le numéro de ma souscription Azure sur la capture précédente.

J’en ai profité pour installer le sous-système linux pour Windows. SQL Server pouvant maintenant être exécuté sous Windows, Linux, Docker ou Kubernetes, un sous-système Linux peut paraitre utile. Jusqu’à présent, j’utilisais MobaXterm pour me connecter aux machines Linux. C’est toujours le cas, mais j’avoue apprécier le WSL.

Pour cela, rendez vous encore une fois dans le store Microsoft, et faites une recherche pour Ubuntu. Note : il y a d’autres distributions possibles (Debian, SUSE et même Kali …)

Il faut ensuite lancer et initialiser la distribution, et créer un user.

J’ai trouvé très pratique de monter directement dans mon explorateur Windows le partage réseau \\wsl$\Ubuntu\home. Faire un simple copier-coller pour disposer de ses fichiers depuis l’invite de commande Bash. Et c’est une des principales raisons qui m’a fait prendre de la distance avec l’excellent MobaXTerm. Et l’invite de commande est accessible depuis le nouveau terminal Windows.

Si comme moi vous utilisez de manière intense Visual Studio Code, vous serez surpris de voir à quel point il est intégré au WSL. Lorsque on l’utilise depuis Windows, on peut noter le symbole dans un rectangle vert en bas à gauche.

En cliquant dessus on lancer l’exécution (ou l’installation lors de la première tentative) de VSCode dans le sous-système linux, et on profite ainsi du terminal SSH directement.

Pratique pour Docker, Kubernetes, … Si vous avez assisté aux sessions SQLSaturday que j’ai eu la chance d’animer à Lisbonne ou Edinbourg, c’est exactement ce que j’utilisais pour mes scripts Azure et Kubernetes.

Et devinez quoi, installer Powershell Core dans le sous-système Linux est extrêmement simple ! Et cela permet en outre de continuer à utiliser les commande DBATools ( https://dbatools.io/ ) indifféremment depuis Windows ou Linux !!!

# ubuntu 18.04

# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb

# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb

# Update the list of products
sudo apt-get update

# Enable the « universe » repositories
sudo add-apt-repository universe

# Install PowerShell
sudo apt-get install -y powershell

# Start PowerShell
Pwsh

Il suffit ensuite d’installer le module DBATools et de tester une connexion

Install-module dbatools
Import-module dbatools


$cred = get-credential
instance =  » conseilit-fr.database.windows.net »
$Server = Connect-DbaInstance -SqlInstance $instance -SqlCredential $cred
$Server | select ComputerName,ConnectedAs,ServerType

Cool, DBATools dans PowerShell dans Linux sur Windows

Le combo VSCode, WSL et nouveau terminal est vraiment très agréable à utiliser. Un Must Have.

Bon, reste plus qu’a installer Office, Azure Data Studio, SSMS, quelques VMs pour les démos …

Publié dans Non classé | 1 commentaire

SQL Server 2019 – Mise à jour du contrat de licence

SQL Server est RTM depuis quelques semaines déjà. Quelques clients ont manifesté leur volonté de migrer, je ne peux que les encourager surtout lorsqu’il s’agit de versions « anciennes » telles que SQL Server 2008/R2, SQL 2012 ou SQL 2014. Profiter des nouvelles fonctionnalités permet bien souvent de solutionner des problèmes ou de simplifier l’architecture, exemple Hekaton + Non Clustered Columnstore Index en lieu et place d’un simple copie de données entre bases.

Migrer une base de données, voire une instance n’est pas vraiment très compliquée. Une partie des problèmes est facilement anticipable : pensez à anonymiser vos chaines de connexion. Ensuite définir un chemin de migration en fonction du temps d’interruption désiré. Et enfin jouer avec les niveaux de compatibilité et le Query Store pour déterminer si certaines requêtes ont subi des régressions.

Si vous souhaitez de l’assistance pour vos migrations, n’hésitez pas à me contacter.

Mais, outre l’aspect technique, il est parfois important de discuter des licences. Sans trahir les échanges que je peux avoir avec mes clients (ou prospects) la compréhension du mode de licence, les différents choix possibles pose de réels problèmes.

Les contrats de licence sont également mis à jour, il me paraissait utile de mettre en avant les nouveautés marquantes.

Et pour SQL Server 2019, nous sommes gâtés, du moins en ce qui concerne la HA/DR. La software assurance nous apporte des bénéfices supplémentaires :

Avant 1er Novembre 2019

Après 1er Novembre 2019

1 passif « gratuit » OnPrem pour un actif licencié OnPrem, quel que soit le mode, synchrone (HA) ou asynchrone (DR)

Il est possible de disposer le réplica sur Azure pour du DR seulement (mode asynchrone). Les scénario hybrides sont ainsi facilités.

Chaque serveur active couvert par la Software Assurance autorise un seul serveur passif utilisable en failover.

Il est aussi possible de disposer d’un second réplica OnPrem, un en HA (mode synchrone) et un en DR (mode asynchrone)

L’utilisation du moteur SQL pour une charge de travail quelconque, que ce soient des requêtes utilisateur ou simplement des sauvegardes impliquait le paiement de la licence pour le serveur secondaire.

A présent, il est possible d’effectuer les sauvegardes sur le serveur secondaire, tout comme les tests d’intégrité et le monitoring des ressources consommées.

 

Le licensing pour SQL Server 2019 Big Data Clusters est totalement différent et n’est pas abordé dans ce post.

Happy migration

Publié dans Non classé | Laisser un commentaire

SQLSaturday #927 – Edinburgh 2020 – From Docker to Big Data Clusters

Il y a des thèmes qui font le buzz. Concernant SQL Server, la mode est à Docker, Kubernetes et les nouveautés liées à SQL Server 2019.
Après Lisbonne fin Novembre, j’ai eu le plaisir d’être sélectionné pour présenter ma session « From Docker to Big Data Clusters : a new era for SQL Server ».

Une bonne occasion de visiter Édinbourg et de parler SQL Server et Big Data Clusters.

Cédric (@Seddryck] et Isabelle (@thesqlgrrrl), speakers francophones, seront également de la partie.


Il est temps de s’inscrire : https://www.sqlsaturday.com/927/registernow.aspx

See you there !

Publié dans Containers, Docker, Evènements, Kubernetes, SQL Server | Tagué | Laisser un commentaire

RDP pour VM Linux dans Azure

Vous avez probablement du vous en rendre compte, il est de plus en plus fréquemment fait allusion à Linux lorsque l’on parle de SQL Server.

Cela a commencé avec le support officiel de la part de Microsoft de plusieurs distributions pour héberger SQL Server.
Puis est arrivé le support officiel de SQL Server en tant que conteneur Docker et même dans un cluster Kubernetes.
Or, ces environnements sont en grande majorité, pour ne pas dire 100%, supportés par une infrastructure Linux. Microsoft sur Azure, semble faire pencher la balance vers Ubuntu Server, mais cela n’enlève rien à CentOS que j’apprécie beaucoup ou RedHat si vous préférez une distribution commerciale.

Windows depuis c’est début est fondamentalement orienté interface graphique. Était devrais-je dire car depuis l’apparition de Windows Server core (Windows 2008R2 de mémoire), il est possible de disposer de Windows sans IHM. En outre, et cela ne vous aura pas échappé, l’administration se fait beaucoup au travers de scripts PowerShell. Et si ce n’est pas encore le cas en ce qui vous concerne, je vous suggère vivement de franchir cette étape, PowerShell est in incontournable, d’autant plus dans sa mouture Core qui est accessible également sur Linux ! Accompagné des DBATools, l’administration de SQL Server s’en trouve grandement facilitée.

Donc Windows qui était fondamentalement orienté GUI tend à délaisser son IHM.
Linux en distribution serveur, de son côté, ne disposait pas d’IHM.

Il serait amusant d’en ajouter une …
Let’s go. Ajoutons du RDP à Linux !!!

Tout d’abord créons une simple VM dans Azure.

Au départ, seul SSH est activé comme vous pouvez le noter.

Connections-nous sur le serveur via SSH pour … ajouter une interface graphique

Après avoir fait un apt-get update, nous allons installer LXDE.

sudo apt-get install lxde -y

Vous pouvez utiliser le bureau « classique » Ubuntu en modifiant la ligne de commande pour utiliser ubuntu-desktop.

L’étape suivant consiste à installer et démarrer XRDP.

sudo apt-get install xrdp -y
/etc/init.d/xrdp start

A ce stade tout est terminé côté OS, il manque seulement l’ouverture du port 3389 sur le Network Security Group.

Seule le port 22 pour SSH a été configuré lors de la création de la VM.


Nous allons ajouter le 3389.

Il n’y a plus qu’à tester la connexion

Cela ne servira probablement à rien, mais la boucle est bouclée ! Windows sans IHM et RDP sur Linux.

Allez, promis, le prochain article sera un peu plus sérieux. Bonne année 2020 à tous.

Happy RDP

Publié dans Azure, Linux | Laisser un commentaire

SQLSaturday #926 – Lisbon 2019 – From Docker to Big Data Clusters

Envie de découvrir Lisbonne ?

Ou bien envie de parler Docker, Kubernetes, SQL Server et Big Data Cluster ?

Ou bien profiter d’un SQLSaturday pour ET parler SQL Server ET visiter Lisbonne le 30 Novembre ….

J’aurais la chance d’animer une session et d’y retrouver de bons amis :

Incriptions ici !

See you there …

Publié dans Containers, Docker, Evènements, Kubernetes, SQL Server | Tagué | Laisser un commentaire

SQL Server 2019 est disponible

Il fallait s’y attendre compte tenu des évènements Microsoft en cours, que ce soit Ignite à Orlando ou bien le PASS Summit à Seattle où je suis actuellement.

 

L’annonce a été faite aujourd’hui (le 4 novembre), SQL Server 2019 est en General Availability, cela revient à dire que l’on peut télécharger une version RTM du produit, par exemple depuis votre abonnement MSDN.

 

Je ne vais pas détailler dans ce billet la liste des nouveautés de SQL Server 2019, mais la fonctionnalité phare reste sans conteste le « Big Data Cluster » qui mêle les fonctionnalités de tables externes Polybase avec un cluster Hadoop colocalisé avec SQL Server dans des Pods Kubernetes.

J’ai abordé ces points lors d’une pré conférence au SQLSaturday 2019 à Paris en Juin et j’aurais également la chance d’en parler au SQLSaturday à Lisbonne fin Novembre. N’hésitez pas à faire le déplacement …

Une image officielle SQL Server pour Red Hat a aussi vu le jour. Cela dit en passant, certaines fonctionnalités manquantes sous Linux sont à présent disponibles avec SQL Server 2019 : MSDTC, Marchine Learning, support de la réplication.

Le buffer pool hybride, le Rapid Recovery, le Static Data Masking, la gestion des certificats, la capacité de suspendre et de reprendre le chiffrement TDE d’une base de données font partie des nouveautés et devraient faire l’objet de futurs articles sur ce blog.

On peut aussi noter des améliorations au niveau des Graph Databases et de l’intelligent Query Processing

La base TempDB n’a pas été oubliée, les tables systèmes qui parfois souffraient d’une forte contention sont désormais hébergées dans le moteur Hekaton, le moteur InMemory OLTP sans lock et sans latches.

Sujet de prédilection en ce qui me concerne, la haute disponibilité voit se belles améliorations / nouveautés pour les groupes de disponibilité :

  • Une redirection du secondaire vers le primaire
  • La possibilité de disposer de 5 réplicas synchrones
  • La possibilité de créer un groupe de disponibilité mêlant bases systèmes et base utilisateur (attention, 1 seul) afin de gommer les lacunes de duplication de jobs, de logins et autres informations liées au bases Master et MSDB

 

Bref, de belles nouveautés qui vont, à n’en pas douter, accélérer l’adoption de SQL Server comme plateforme / Hub de données.

Happy SQL Server 2019 !

 

Publié dans SQL Server | Tagué , | 1 commentaire

MicroK8s : cluster Kubernetes de test et développement

Afin de poursuivre une série de billets liées à Docker et Kubernetes, je vous propose d’aborder MicroK8s.

Un cluster K8s n’est pas forcément très simple à installer. L’environnement de production doit faire l’objet de toutes les attentions, mais pour le développeur qui souhaite disposer d’un bac à sable, éventuellement sur son poste, des solutions simples existent …

Deux alternatives semblent se démarquer à l’heure actuelle :

Minikube me parait être une solution un peu lourde, d’un point de vue mise en œuvre, si l’on souhaite s’adresser à un public de développeur. Il faut en effet passer par une machine virtuelle. Mais sachant que dans le monde OpenSource et / ou Conteneurisation en évolution / révolution permanente, il est fort probable que d’autres solutions verront le jour.

J’ai fait allusion aux développeurs et à leur poste de travail, et ce n’est pas sans raisons. Canonical, que vous connaissez probablement pour la distribution Ubuntu, se cache derrière MicroK8s et affiche clairement le crédo du produit : « A single package of k8s that installs on 42 flavours of Linux. Made for developers and great for appliances. ». Clairement Canonical semble fournir le moyen le plus simple pour provisionner un cluster Kubernetes à nœud unique à destination des développeurs pour tester leurs pipelines de CI/CD ou tout simplement pour permettre aux IT Pros et aux développeurs de se former à Kubernetes.

Bien que sponsorisé par Canonical, il est possible d’installer MicroK8s sur d’autres distributions que Ubuntu, comme le montre le site web de SnapCraft (également dans le giron de Canonical). Snap n’est autre qu’un magasin d’applications pour Linux.

Beaucoup de postes clients sous Linux exploitent Ubuntu, j’ai choisi pour ma part de faire cette démo sous CentOS. J’ai également des postes de test sous Fedora, plus orienté poste client que CentOS, mais il ne devrait pas y avoir de différences notables, y compris au travers de l’installation qui se fait au travers de l’utilitaire snap.

Snap est disponible pour CentOS version 7.6+. Pour vérifier la version de CentOS :

cat /etc/centos-release

Ensuite il faut installer Snap :

sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable –now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

Une fois terminé, on peut procéder à l’installation de MicroK8s (il est préférable de disposer de 2GB de RAM au minimum sans quoi même si les conteneurs se lancent, ils restent en état pending).

sudo snap install microk8s –classic


Le processus d’installation, extrêmement simple, est vraiment appréciable et devrait convaincre bon nombre de personnes.

Une fois redémarré la session utilisateur, il est possible de vérifier la configuration du cluster K8s. Pour ceux qui ont l’habitude de travailler avec Kubernetes, vous utilisez l’utilitaire kubectl. Pour MicroK8s, il faudra utiliser microk8s.kubect. Simple et efficace.

kubectl cluster-info
microk8s.kubectl cluster-info
microk8s.kubectl get all -o wide –all-namespaces

Afin de garder les mêmes commandes que vous avez l’habitude d’utiliser, je vous suggère de créer un alias :

alias kubectl=’microk8s.kubectl’
kubectl version –short

Sachant qu’il s’agit d’un « cluster » Kubernetes de test/dev, un seul Node est nécessaire. Ce qui n’empêchera pas de jouer avec le scaling (l’ajout de réplicas). Les Pods seront seulement hébergés sur le même Worker.

Le déploiement d’une application est strictement identique à un « vrai » cluster K8s. Je vais réutiliser le déploiement de l’application Nginx de l’article précédent, fichier « deployment-definition.yaml ».

apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
selector:
matchLabels:
app: myapp
replicas: 1
template:
metadata:
labels:
app: myapp
type: front-end
spec:
containers:
– name: web
image: nginx
ports:
– containerPort: 80

kubectl create -f ./deployment-definition.yaml
kubectl get pods -o wide

De la même manière, il est possible de changer le nombre de réplicas :

kubectl scale deploy myapp-deployment –replicas 2
kubectl get pods -o wide

Aucune différence perçue avec le cluster Kubernetes utilisé précédemment. Contrat rempli !

Sachant que l’objectif est clairement de se positionner sur les postes développeurs, sur une machine virtuelle, on utiliserait la notion de snapshot de VM afin de reseter totalement la configuration. MicroK8s propose une fonctionnalité équivalente qui va détruire toute la configuration et mettre à disposition un « cluster » fresh copy (suppression des deployments, pods, services, images, …)

microk8s.reset

L’avenir nous dira si des produits équivalents seront disponibles afin de faciliter au maximum la vie des développeurs, mais nul doute qu’à l’heure où ce billet est écrit, MicroK8s fait forte impression…

Happy Micro Kubernetes !

Publié dans Containers, Docker, Kubernetes, Linux | Laisser un commentaire