Installer Docker sur Kubic

Depuis septembre 2018, Kubic utiliser CRI-O comme runtime par défaut https://kubic.opensuse.org/blog/2018-09-17-crio-default/

Kubic est une distribution Linux basée sur Open Suse. Outre le fait de faciliter les déploiements de clusters Kubernetes, elle utilise un certain nombre de solutions très intéressantes dans un contexte professionnel. Par exemple sa possibilité d’effectuer les installations et mises à jour sous forme de transactions (en cas d’erreur, aucune opération n’est conservée sur le disque dur).

Contrairement à ce qu’indique la documentation, l’utilisation de Docker ne passe pas directement pas la désinstallation des packages d’intégration de CRI-O. Cette approche induit des erreurs et complique ensuite l’utilisation de kubeadm.

Préparer et cloner ses VM Linux pour une solution DevOps

Installer une machine virtuelle Linux et la cloner n’a rien de sorcier. Tout du moins de premier abord.

La problématique du clonage

Si vous demandez à un administrateur Linux, il vous dira qu’il suffit de copier la VM et le tour est joué. Si en plus il a de grosses ouillères, il ajoutera que sous Linux il n’y a pas de notion de sysprep, car Linux n’en a pas besoin.

Mais c’est là que le bât blesse. En fonction de la solution DevOps à laquelle vous destinez votre VM Linux, il y aura besoin que ces VM soient différenciables. Le plus souvent, l’outil s’appuiera sur des id générés ou récupérés par Linux lors de la détection de ses matériels (Carte mère, Cartes réseau, Disque dur, ...).

Par exemple, Kubernetes s’appuie sur :
  • L’adresse MAC de la carte réseau.
  • Le product_uuid, déterminé par la carte mère.

Conflit de version Kubeadm lors de l’initialisation d’un cluster Kubernetes 1.18

Kubernetes 1.18 étant distribué depuis peu, toutes les distributions Linux ne sont pas forcément prêtes. Certains outils comme Kubeadm peuvent poser problème.

Par exemple, sur la variante Kubic d’Open Suse, j’ai eu le message suivant lors de l’utilisation de la commande kubeadm init.

WARNING: kubeadm cannot validate component configs for API groups
[kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Using Kubernetes version: v1.17.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: "1.18.0" Control plane version: "1.17.2"
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

Heureusement, Kubeadm est très versatile et on peut lui indiquer la version de k8s ciblée. Pour cibler Kubernetes 1.18, il faut utiliser la commande suivante :

kubeadm init --kubernetes-version=v1.18.0
Jérémy Jeanson

Bonnes pratiques pour créer des pipelines Azure YAML maintenables

De premier abord, créer un pipeline Azure n’est pas très compliqué. Les exemples sont nombreux et la documentation est bien fournie.

Mais (oui, il y a un mais) :

  • Azure Devops évolue régulièrement, très régulièrement. Il peut donc être difficile de suivre les évolutions dans le temps.
  • Azure Devops permet d’associer / mélanger beaucoup de technologies. Les solutions de builds sont donc nombreuses. Il peut s’avérer compliquer de toutes les maitriser. Si l’on utilise plusieurs technologies dans un même projet, les builds sont plus compliquées.
  • Azure Devops permet de déployer / publier ses applications sur de nombreuses plateformes. Toutes les maitriser passe par une période plus ou moins longue d’apprentissage et de tests (beaucoup de tests).

Continuer à se former durant le confinement

Étant donné qu’il est impossible de se déplacer en ce moment, il est difficile de participer à une formation. Heureusement, il existe de nombreuses solutions en ligne pour se former.

Voici mes deux solutions préférées :

  • Microsoft Learn : Gratuit, très complet concernant Azure, Microsoft 365, Power Platform…
  • PluralSight : Payant (mais de nombreux contenus sont gratuits), on y trouve tout type de technologies, autant pour le développement que pour l’IT Pro.

Les abonnés MSDN ont accès à certains cours de PluralSight (cela est disponible via la page des avantages MSDN).

Jérémy Jeanson