Kubernetes Flashcards

1
Q

Quelles sont les deux types de ressources composant un cluster?

A

Le maître coordonne cluster et autres noeuds sont les travailleurs qui exécutent l’application

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qu’est-ce qu’un noeud dans un cluster et quels sont ces composants?

A

VM ou serveur physique qui sert de machine de travail dans un cluster, possède un agent pour communiquer avec le maitre, outils de gestions de conteneur, communiquent avec le maître via API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quels sont les composants du master node? Quel est leur rôle?

A

Kube-API Server, kube-scheduler, kube-controller-manager, etcd. Prendre des décisions à l’échelle du cluster comme scheduling, répondre aux pannes, atteindre le nombre souhaité de répliques.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quels sont les composants d’un worker node?

A

Kubelet, Kubeproxy, IP Table, CRI, Container runtime, Pod(container)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Sur quels noeuds sont généralement déployés les master components?

A

Sur des noeuds maitres dédiés. Souvent sur même machine sans exécuter de conteneurs utilisateurs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce que etcd?

A

Unité de stockage clé-valeur utilisé pour toutes les données du cluster. Sorte de bd, consistante et hautement disponible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que kube-apiserver?

A

Expose l’API Kubernetes et c’est l’interface du plan de contrôle, met à jour l’état des objets de l’API dans etcd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce que kube-scheduler?

A

Surveille les pods nouvellement créés qui ne sont pas affectés à un noeud et trouve un noeud disponible pour exécuter le pod. Prend en compte les exigences individuelles et collectives des ressources, contraintes matérielles, spécifications d’affinité et anti-affinité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est-ce que le kube-controller-manager?

A

Gère un certain nombre de contrôleurs chargé de répondre aux noeuds qui tombent en panne et de maintenir le nombre correct de répliques. Node Controller (détecter et apporter une réponse lorsque noeud tombe en panne) et Replication Controller (maintenir le bon nombre de pods)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Où s’exécutent les node components?

A

Sur chaque noeud du cluster et sont responsables de maintenir des pods en cours d’exécution et fournir l’environnement d’exécution Kubernetes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce que kubelet?

A

Agent qui s’exécute sur chaque noeud du cluster et qui est responsable de l’exécution des conteneurs dans les pods, surveiller l’état d’un pod (relayer état noeud maitre), prendre ensemble de PodSpecs et assurer le fonctionnement des conteneurs décrits dans specs et ne gère que les conteneurs créés par Kubernetes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce que le container runtime?

A

Logiciel responsable de l’exécution des conteneurs. Ex: Docker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que kube-proxy?

A

Gère règles de réseau sur les noeuds et effectue transfert de connexion. Ces règles permettent communication réseau vers les Pods depuis intérieur et extérieur. Responsable du routage vers le bon conteneur selon adresse IP et port.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qu’est-ce que le Container Runtime Interface (CRI)?

A

Décrit les fonctions qui doivent être implémentées par un environnement d’exécution de conteneur pour être compatible CRI. Fonctions de cycle de vie des conteneurs, gestion des images de conteneurs, assistance autour de l’observabilité, journalisation, collecte de métriques

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce qu’un pod?

A

C’est l’unité d’exécution de base de Kubernetes. Il représente des process en cours d’exécution dans cluster. Il encapsule un ou plusieurs conteneurs, des ressources de stockage et une identité réseau unique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qu’est-ce qu’un Object Meta?

A

Métadonnées que toutes les ressources Kubernetes doivent avoir. Ce sont des informations comme le nom, les étiquettes, le propriétaire, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

De quoi est composé un Pod Template?

A

D’un Object Meta (metadata) et d’un PodSpec (spec)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

À quoi sert une étiquette (Label)?

A

Indiquer un regroupement logique d’un ensemble de pods et leur une identité d’application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

À quoi sert les sélecteurs d’étiquettes (Selectors)?

A

Permet au client d’identifier un ensemble d’objets. C’est la primitive de regroupement dans Kubernetes. Utilisé dans les services et déploiements, les ReplicaSet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qu’est-ce qu’un service?

A

Manière abstraite d’exposer une application s’exécutant sur un ensemble de Pods en tant que service sur le réseau. C’est une abstraction qui définit un ensemble logique de pods et une politique permettant d’y accéder. Il possède une adresse IP stable. La sélection est fait à l’aide d’un sélecteur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Pourquoi on n’accède à l’application via un service et non directement via les Pods?

A

Car les Pods Kubernetes sont mortels et peuvent donc être créés et détruits dynamiquement. Les adresses des Pods peuvent donc changer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Qu’est-ce qu’un Contrôleur?

A

Boucle de contrôle qui surveille l’état partagé du cluster via le API server. Apporte des modifications en tentant de déplacer l’état actuel vers l’état souhaité.

23
Q

Qu’est-ce qu’un ReplicaSet?

A

Contrôleur qui a pour but de maintenir un ensemble stable de Pods à un moment donné. Il a un sélecteur, un nombre de réplicas et un modèle de Pod qui spécifie les Pods que le ReplicaSet va créer.

24
Q

Qu’est-ce qu’un Deployment?

A

Contrôleur qui fournit des mises à jour déclaratives pour les Pods et les ReplicaSets. On décrit l’état désiré dans un déploiement et le contrôleur de déploiement change l’état réel à l’état souhaité à un rythme contrôlé. On utilise un déploiement pour déployer et surveiller les ReplicaSets, les mettre à l’échelle et mettre à jour les pods. Lorsqu’on crée un déploiement, il crée automatiquement un ReplicaSet et le ReplicaSet crée les pods en arrière-plan.

25
Q

Qu’est-ce qu’un namespace?

A

Primitive de Kubernetes qui aider à la gestion d’un groupe de ressources. Permet de diviser un cluster Kubernetes en un pool logique de ressources. Mécanisme pour appliquer des autorisations à une sous-section du cluster. Cas courant est des environnements

26
Q

Qu’est-ce qu’un DaemonSet?

A

Il garantit que tous ou certains noeuds exécutent une copie d’un pod. La suppression d’un DaemonSet nettoiera les pods qu’il a créés. Ex: Logs, Monitoring

27
Q

Qu’est-ce qu’un StatefulSet?

A

Prend en charge les applications avec état. Gère des pods qui sont basés sur une même spécification de conteneur. Cependant, il maintient une identité pour chacun des pods.

28
Q

Qu’est-ce qu’un volume persistant (PV)? Comment sont-ils utilisés par les pods?

A

Élément de stockage réseau dans le cluster. Ressource au même titre qu’un noeud. Ils ont un cycle de vie indépendant de tout pod qui l’utilise. Les Pods utilisent les PV par des revendications de volume persistantes (Persistent Volume Claims PVC)

29
Q

Qu’est-ce qu’un Ingress?

A

Objet Kubernetes qui gère l’accès externe au services dans un cluster. Il reçoit les requêtes des clients et les envoie au Service.

30
Q

Pourquoi la vérification de l’état des processus n’est pas suffisant pour décider de l’intégrité d’une application?

A

La détection d’une panne n’est pas si simple et une application peut être en panne alors que sont processus est toujours opérationnel comme lors d’un deadlock ou une boucle infinie.

31
Q

Nommer 3 éléments de Kubernetes permettant à l’application de communiquer son état.

A

Liveness, Readiness et Startup Probes

32
Q

Que fait une Liveness Probe?

A

Utilise une méthode pour vérifier l’état de l’application et redémarre le conteneur le cas échéant. C’est ce que Kubelet utilise.

33
Q

Que fait une Readiness Probe?

A

Utilise une méthode pour vérifier que le conteneur est prêt et si la vérification échoue le conteneur ne reçoit aucun nouveau trafic.

34
Q

Qu’implique la mise à jour des services sur K8s? Comment éviter de faire ces étapes manuellement?

A

Démarrage de la nouvelle version du pod, arrêt de l’ancienne version du pod, attente et vérification du lancement réussi et retour à la version précédente lors d’échec. Un déploiement déclaratif peut être utilisé pour automatiser.

35
Q

Quel est le comportement du RollingUpdate?

A

Garantit qu’il n’y a pas de temps d’arrêt. Crée de nouveaux ReplicaSet et remplace les anciens conteneurs par de nouveaux.

36
Q

Quel est le comportement d’un Recreate? Quel est son avantage? Quel est son inconvénient?

A

Tue tous les conteneurs de la version actuelle, puis démarre les nouveaux conteneurs lorsque les anciens sont expulsés. L’avantage est qu’il n’y a pas 2 versions en même temps. Le désavantage est qu’il y a un certain downtime.

37
Q

Comment fonctionne le Blue-Green Release?

A

Créer un 2e déploiement avec la dernière version des pods (Green) ne traitant aucune demande. Les anciens réplicas de pod (Blue) sont toujours en cours d’exécution et traitent les requêtes. Une fois convaincus que la nouvelle version est saine, on bascule le trafic.

38
Q

Comment fonctionne le Canary Release?

A

Déployer en douceur une nouvelle version d’une application en remplaçant qu’un petit sous-ensemble d’anciennes instances par de nouvelles et ne laissant que certains utilisateurs y accéder.Lorsque satisfaits on release à tous.

39
Q

Donnez des raisons pourquoi vous auriez besoin de modifier le placement automatique de Kubernetes.

A

Les dépendances d’exécution, la haute disponibilité, la performance et la faible latence

40
Q

Quels sont les moyens afin d’influencer les décisions d’ordonnancement ou de placement des Pods?

A

NodeSlector, Node Affinity, Pod Affinity et Antiaffinity, Taints et Tolerations

41
Q

Qu’est-ce qu’un NodeSelector?

A

Champ de Pod qui spécifie des paires clé-valeur qui doivent être présentes sous forme d’étiquettes sur le noeud pour que le noeud soit éligible pour exécuter le pod.

42
Q

Qu’est-ce qu’une Node Affinity?

A

C’est une généralisation de l’approche de NodeSelector qui permet de spécifier des règles comme exigences strictes et des règles comme exigences souples. On utilise des opérateurs comme In, NotIn, Exists, DoesNotExist, Gt ou Lt.

43
Q

Qu’est-ce que le Pod Affinity et l’Antiaffinity?

A

Permet de limiter les noeuds sur lesquels un pod peut s’exécuter en fonction de la correspondance d’étiquette ou de champ. Node Affinity doit être privilégié.

44
Q

Qu’est-ce que les Taints et les Tolerations?

A

C’est l’opposé de Node Affinity. Ils permettent aux noeuds de contrôler quels pods doivent ou ne doivent pas êtres programmés sur eux. Un Taint est une caractéristique du noeud et empêche les pods d’être placés par le scheduler sur le noeud à moins que le pod n’ait une tolérance pour le Taint.

45
Q

Comment la découverte de service s’effectue sous Kubernetes?

A

Kube-proxy surveille le maître pour l’ajout et la suppression d’objets Service et Endpoint. Pour chaque service, il installe des règles iptables qui capturent le trafic vers le service et toutes les connexions au service sont transmises par proxy à l’un des modules backend du service (via les Endpoints).

46
Q

Vrai ou faux. Une fois un service créé, il obtient une IP de cluster qui n’est accessible qu’à partir du cluster Kubernetes et cette IP reste inchangée tant que la définition du service existe.

A

Vrai

47
Q

Quelles sont les 2 façons que les autres applications au sein du cluster peuvent-elles déterminer ce qu’est un ClusterIP alloué dynamiquement?

A

Découverte via des variables d’environnement: kubelet ajoute un ensemble de variables d’environnement pour chaque service actif

Découverte via la recherche DNS: Kubernetes exécute un serveur DNS que tous les pods sont automatiquement configurés pour utiliser. Lorsqu’un nouveau service est créé, il obtient automatiquement une nouvelle entrée DNS que tous les pods peuvent commencer à utiliser.

48
Q

Donnez un moyen d’effectuer une découverte manuelle de services.

A

En utilisant un ExternalName qui est service mappant un service à un nom DNS et non pas à un sélecteur standard.

49
Q

Vrai ou faux. Les ClusterIP sont accessibles à l’extérieur du cluster.

A

Faux. Les ClusterIP ne sont accessibles qu’à partir du cluster.

50
Q

Quels sont les 2 types de services permettant de découvrir des services depuis l’extérieur du cluster?

A

NodePort et LoadBalancer

51
Q

Comment le NodePort expose un service à l’externe?

A

Il réserve un port sur tous les noeuds et transmet les connexions entrantes au Service. Lorsqu’il y a une nouvelle requête, le Service choisit au hasard un Pod auquel se connecter ce qui peut être modifié par sessionAffinity: ClientIP qui fait en sorte que toutes les demandes restent sur le même pod.

52
Q

Comment le LoadBalancer expose un service à l’externe?

A

Il expose un port sur chaque noeud comme le NodePort, mais il expose également le service en externe à l’aide de l’équilibreur de charge du cloud provider.

53
Q
A