Cours cloud ECE

By

Laurent Grangeau & Arthur Mauvezin


Who we are ?

Laurent Grangeau
Cloud Solution Architect @ Sogeti Image


Who we are ?

Arthur Mauvezin
DevOps Engineer @ Ouidou Consulting Image

Kubernetes


Orchestrateur de containers

Afin de garantir qu’un container fonctionne, il est nécessaire d’avoir un orchestrateur de container

Celui-ci garanti que le container est toujours en fonctionnement, même si les noeuds du cluster se mettent à jour ou tombent en panne


Docker Swarm

Docker Swarm est l’orchestrateur par défaut de Docker

Il est inclus dans le moteur et simple d’utilisation

Cependant, il ne répond pas à des contraintes de production


Docker Swarm

Image


Kubernetes

Image


Pods

Un pod est un regroupement de container au sein d’une même unité


Horizontal pod autoscaler

Lorsqu’une demande est faite de scaler les pods, HPA s’occupe de démarrer les pods sur les noeuds correspondant, respectant les contraintes imposées


Deployment

Un déploiement est la manière de déployer un pod

Un déploiement est déclaratif, c’est-à-dire que Kubernetes va s’assurer que les pods sont toujours au bon nombre demandés


Services

Un service est la manière d’accéder aux pods

Un service expose une adresse IP, ainsi qu’un port

Il joue le role de load-balancer


Ingress

L’ingress sert à exposer à l’extérieur du cluster un service

Cela se représente traditionnellement par un load balancer, une URL ainsi que du SSL


Cluster autoscaler

Il sert à augmenter le nombre de noeuds du cluster automatiquement quand celui-ci n’a plus assez de ressource, ou que les noeuds sont sous utilisés


Daemonset

Un daemonset garanti qu’un noeud fasse tourner un ou plusieurs pods automatiquement

Pratique quand il faut de la supervision (datadog, …), du logging (fluentd, …) ou du stockage distribué (ceph, …)


Storageclass

Définie une classe de stockage basée sur la qualité de service, la stratégie de backup ou une policy définie par l’administrateur


Persistent volume

Abstrait la notion de StorageClass pour fournir une API de pilotage de volume

Basé sur un système de plugin (iSCSI, NFS, …)


Persistent volume claim

Requête de stockage par l’utilisateur qui va se greffer sur un PV

Demandée par un pod


Configmap

Défini une configuration à appliquer sur un pod

apiVersion: v1
data:
  redis-config: |
    maxmemory 2mb
    maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
  creationTimestamp: 2016-03-30T18:14:41Z
  name: example-redis-config
  namespace: default
  resourceVersion: "24686"
  selfLink: /api/v1/namespaces/default/configmaps/example-redis-config
  uid: 460a2b6e-f6a3-11e5-8ae5-42010af00002

Secret

Un secret contient des informations sensibles qui ne doit pas être exposé et accessible uniquement qu’à un pod

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

Rolling update

Image


Rolling update


Rolling update


Rolling update


Liveness and readiness probes

livenessProbe:
    exec:
      command:
      - cat
      - /tmp/healthy
    initialDelaySeconds: 5
    periodSeconds: 5

Liveness and readiness probes

readinessProbe:
  exec:
    command:
    - cat
    - /tmp/healthy
  initialDelaySeconds: 5
  periodSeconds: 5

Logging

Node level

Image


Logging

Node logging agent

Image


Logging

Streaming sidecar container

Image


Logging

Sidecar with a logging agent

Image


Logging

Exposing log

Image


Monitoring and alerting

Le monitoring d’une application se fait avec des outils tierces, comme Prometheus par exemple


Monitoring and alerting

Image


Offres managés cloud

La plupart des CSP offrent aujourd’hui des Kubernetes managés, comme par exemple AKS, EKS, GKE


Helm

Helm est le package manager de Kubernetes

Déploit des paquets appelés chart, contenant l’architecture complète du logiciel

C’est l’équivalent de apt-get ou yum


Helm architecture

Image


Service Mesh

Un service mesh est un service qui assure la communication entre différentes versions d’une même application

Il sert aussi pour tout ce qui est distributed tracing et debugging


Istio architecture