Kubernetes

Sommaire

  • Introduction
  • Docker
  • Application Qwark
  • Déployer Keybab sur k8s ?

VM vs Conteneurs

Serveur 1

Serveur 2

Cluster

Master

Workers

kube-apiserver

Etcd

kube-scheduler

kube-controller-manager

cloud-controller-manager 

kubelet

kube-proxy

Container Runtime

DNS

Docker

Build process VM

Build process Container

Dockerfile

A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession.

Construction d'une image

Projet Qwark

Pods

Les Pods sont les plus petites unités informatiques déployables qui peuvent être créées et gérées dans Kubernetes. 

Un pod [...] est un groupe d'un ou plusieurs conteneurs (comme des conteneurs Docker), ayant du stockage/réseau partagé, et une spécification sur la manière d'exécuter ces conteneurs.

v1

Master Node

Worker nodes

Services

Node Port

Cluster IP

LoadBalancer

Expose un service via un port sur tous les nodes

Expose un service de manière interne au cluster

Expose un service en via un loadbalancer TCP du cloud provider

Ciblent des pods via des sélécteurs

Services

Node Port

Services

LoadBalancer

v1

Master Node

Worker nodes

Replica sets

Un ReplicaSet (ensemble de réplicas en français) a pour but de maintenir un ensemble stable de Pods à un moment donné. Cet objet est souvent utilisé pour garantir la disponibilité d'un certain nombre identique de Pods.

 

Replica sets

v1

Master Node

Worker nodes

Deployments

Un Deployment (déploiement en français) fournit des mises à jour déclaratives pour Pods et ReplicaSets.

Deployments

v2

Master Node

Worker nodes

Config map

Une configmap est un objet d'API utilisé pour stocker des données non confidentielles sous un format clé - valeur.

Les pods peuvent utiliser les configmap comme variable d'environnement, argument de ligne de commande ou configuration dans un volume (fichier / dossier)

Config map

Secrets

Un secret est un objet qui contient une petite quantité de données sensibles telles qu'un mot de passe, un jeton ou une clé.

Secrets

v3

Master Node

Worker nodes

Secret config

Persistance

Storage Class

Persistant Volume

Persistant Volume Claim

Persistance

Persistance

v4

Master Node

Worker nodes

Secret config

Persistant Storage

Ingress

Un Ingress est un objet Kubernetes qui gère l'accès externe aux services dans un cluster, généralement du trafic HTTP.

Un Ingress peut fournir un équilibrage de charge, une terminaison TLS et un hébergement virtuel basé sur un nom.

Ingress

v4

Master Node

Worker nodes

Secret config

Persistant Storage

Keybab

Workloads

Workloads

custom_segments.yml
locales/
custom_segments.yml
Env
Stockage
Accessible

Workloads

custom_segments.yml
locales/
custom_segments.yml
Env
Stockage

Workloads

custom_segments.yml
locales/
custom_segments.yml
Env

Kubernetes

By foret_a

Kubernetes

  • 350