Ceci est une ancienne révision du document !
Table des matières
Version : 2025.01
Last update : 2025/01/05 13:44
DOE300 - Course Presentation
Content
- DOE300 - Course Presentation.
- Content
- Prerequisites
- Hardware
- Software
- Internet
- Using the Infrastructure
- Curriculum
Prerequisites
Hardware
- One computer (MacOS, Linux, Windows™ or Solaris™),
- AZERTY FR or QWERTY US keyboard,
- 4 GB RAM minimum,
- 2-core processor minimum,
- Headphones or earphones,
- A microphone (optional).
Software
- Web Chrome version 72+ or
- Microsoft Edge version 79+ or
- Firefox version 65+.
Internet
- Fast Internet access (4G minimum) WITHOUT using a proxy,
- Unblocked access to ports 80 and 443 at: https://www.ittraining.team and its sub-domains.
Using the Infrastructure
VM | FQDN | IP | OS | Version | vCPUs | RAM (MB) | HDD (GB) | User | PW | root PW |
---|---|---|---|---|---|---|---|---|---|---|
Gateway_10.0.2.40 | gateway.ittraining.loc | 10.0.2.40 | Debian | 11.8 | 4 | 4096 | 32 / 4 / 64 | trainee | trainee | fenestros |
CentOS_10.0.2.45 | centos8.ittraining.loc | 10.0.2.45 | CentOS | 8.5.2111 | 4 | 4096 | 500 / 4 / 64 / 32 | trainee | trainee | fenestros |
Kubemaster_10.0.2.65 | kubemaster.ittraining.loc | 192.168.56.2 | Debian | 9.13 | 4 | 4096 | 20 | trainee | trainee | fenestros |
Kubenode01_10.0.2.66 | kubenode01.ittraining.loc | 192.168.56.3 | Debian | 9.13 | 4 | 4096 | 20 | trainee | trainee | fenestros |
Kubenode02_10.0.2.67 | kubenode02.ittraining.loc | 192.168.56.4 | Debian | 9.13 | 4 | 4096 | 20 | trainee | trainee | fenestros |
In your VirtualBox you must create a host private network called vboxnet0 with address 192.168.56.1/24.
Pre-configured VirtualBox VMs can be downloaded free of charge here:
Curriculum
- DOE301 - Creating Kubernetes clusters
- Container Orchestration
- Introduction to Kubernetes (k8s)
- Control Plane
- Controller
- Nodes (Minions)
- LAB #1 - Creating a Kubernetes cluster with Virtual Machines
- 1.1 - Overview
- 1.2 - Connecting to the kubemaster
- 1.3 - Testing the network
- 1.4 - Initializing the Cluster Controller
- 1.5 - Installing a Network Extension for communication between PODs
- 1.6 - Connecting workers to the Controller
- 1.7 - K8s and High Availability
- LAB #2 - Creating a Kubernetes cluster with Minikube
- 2.1 - Introducing Minikube
- 2.2 - Installing Minikube
- 2.3 - Configuring Minikube
- 2.4 - Installing Docker
- 2.5 - Installing kubectl
- 2.6 - The minikube addons command
- 2.7 - The minikube dashboard addon
- DOE302 - Managing Pods, Replication Controllers, ReplicaSets, Deployments, Maintenance and Cluster Updates
- LAB #1 - Creating a pod
- 1.1 - Introducing a pod
- 1.2 - Manual pod creation
- 1.3 - Creating a pod using a YAML file
- apiVersion
- kind
- metadata
- spec
- Using the YAML file
- LAB #2 - Using Replication Controllers and ReplicaSets
- 2.1 - Replication Controllers
- Overview
- Implementation
- 2.2 - ReplicaSets
- Overview
- Implementation
- LAB #3 - Deployment management
- 3.1 - Overview
- 3.2 - Implementation
- Rollouts
- Rolling Updates
- Rollbacks
- LAB #4 - Maintenance
- 4.1 - The drain command
- 4.2 - The uncordon command
- LAB #5 - Managing Cluster Updates
- 5.1 - Updating kubeadm
- 5.2 - Updating Workers
- DOE303 - The kubectl, krew and kustomize commands
- LAB #1 - Using the kubectl command
- 1.1 - Getting help with kubectl commands
- 1.2 - Obtaining information about the Cluster
- The version command
- The cluster-info command
- The api-versions command
- The api-resources command
- 1.3 - Obtaining information about nodes
- The describe node command
- The top command
- 1.4 - Obtaining information about Pods
- The describe pod command
- The top command
- 1.5 - Working with the kubectl command
- The apply command
- The create command
- The get command
- Using Options
- The exec command
- Imperative commands
- LAB #2 - Managing kubectl plugins with the krew command
- 2.1 - Installing krew
- 2.2 - Viewing the list of plugins
- 2.3 - Installing and using plugins
- 2.4 - Updating and deleting plugins
- LAB #3 - Managing patches with the kustomize command
- DOE304 - Working with Pods and Containers
- LAB #1 - Application Configuration
- 1.1 - Overview
- 1.2 - Creating a ConfigMap
- 1.3 - Creating a Secret
- 1.4 - Using ConfigMaps and Secrets
- Using Environment variables
- Using Configuration Volumes
- LAB #2 - Container Resource Management
- 2.1 - Overview
- 2.2 - Resource Requests
- 2.3 - Resource Limits
- LAB #3 - Container supervision
- 3.1 - Overview
- 3.2 - Liveness Probes
- The exec Probe
- The httpGet Probe
- 3.3 - Startup Probes
- 3.4 - Readiness Probes
- LAB #4 - Restart Policy Management
- 4.1 - Overview
- 4.2 - Always
- 4.3 - OnFailure
- 4.4 - Never
- LAB #5 - Creating Multi-container Pods
- 5.1 - Overview
- 5.2 - Implementation
- LAB #6 - Init containers
- 6.1 - Overview
- 6.2 - Implementation
- LAB #7 - Scheduling
- 7.1 - Overview
- 7.2 - Implementation
- LAB #8 - DaemonSets
- 8.1 - Overview
- 8.2 - Implementation
- LAB #9 - Static Pods
- 9.1 - Overview
- 9.2 - Implementation
- DOE305 - Network, Service and Microservices Architecture Management
- LAB #1 - Network and Service Management
- 1.1 - Overview of Network Extensions
- 1.2 - DNS K8s
- Overview
- Implementation
- 1.3 - Network Policies
- Overview
- Implementation
- 1.4 - Services
- Overview
- Implementation
- The NodePort service
- ClusterIP service
- 1.5 - Services and the K8s DNS
- Overview
- Implementation
- 1.6 - K8s Ingress management
- Overview
- Implementation
- LAB #2 - Microservices Architecture Management
- 2.1 - Overview
- 2.2 - Creating Deployments
- 2.3 - Creating Services
- 2.4 - Deploying the Application
- 2.5 - Scaling Up
- DOE306 - Managing Volumes with Kubernetes
- Overview
- Volumes
- Persistent Volumes
- Volume Types
- LAB #1 - Using K8s Volumes
- 1.1 - Volumes and volumeMounts
- 1.2 - Sharing volumes between containers
- LAB #2 - Persistent Volumes
- 2.1 - Storage Classes
- 2.2 - Persistent Volumes
- 2.3 - Persistent Volume Claims
- 2.4 - Using a PersistentVolumeClaim in a pod
- 2.5 - Resizing a PersistentVolumeClaim
- DOE307 - Troubleshooting Kubernetes
- Curriculum
- LAB #1 - The API Server
- 1.1 - Refused Connections
- The kubelet service
- The KUBECONFIG variable
- The $HOME/.kube/config file
- 1.2 - System Pod Logs
- LAB #2 - Nodes
- 2.1 - The NotReady status
- LAB #3 - Pods
- 3.1 - The ImagePullBackOff error
- 3.2 - The CrashLoopBackOff Error
- LAB #4 - Containers
- 4.1 - The exec command
- LAB #5 - The Network
- 5.1 - kube-proxy and the DNS
- 5.2 - The netshoot container
- DOE308 - Introduction to Securing K8s
- LAB #1 - Role Based Access Control and TLS Certificates
- 1.1 - Overview
- 1.2 - The /etc/kubernetes/manifests/kube-apiserver.yaml file
- 1.3 - Creating a serviceAccount
- 1.4 - Creating a user
- 1.5 - TLS certificates
- LAB #2 - Pod Security Implementation
- 2.1 - Overview
- 2.2 - Kubernetes Security Context
- ReadOnlyRootFilesystem
- drop
- 2.3 - Kubernetes Network Policies
- 2.4 - Kubernetes Resource Allocation Management
- DOF309 - Gestion de Paquets pour K8s avec Helm
- Présentation de Helm
- LAB #1 - Travailler avec Helm
- 1.1 - Installation de Helm
- 1.2 - La Commande helm search hub
- 1.3 - Rechercher dans le Helm Hub
- 1.4 - Ajouter et supprimer un Dépôt
- 1.5 - La Commande helm search repo
- 1.6 - La Commande helm show
- 1.7 - Installation d'un Chart
- 1.8 - La Commande helm get
- 1.9 - Utilisation des NOTES
- 1.10 - La Commande helm upgrade
- 1.11 - La Commande helm history
- 1.12 - La Commande helm rollback
- 1.13 - La Commande helm uninstall
- LAB #2 - Supervision de K8s avec le Stack EFK
- 2.1 - Présentation du Stack EFK
- 2.2 - Installation du Chart elasticsearch
- 2.3 - Installation du Chart fluentd-elasticsearch
- 2.4 - Installation du Chart kibana
- 2.5 - Génération de Traces dans K8s
- 2.6 - Visualisation des Données avec Kibana
- DOF310 - StatefulSets, StorageClass Avancé, Helm Avancé et Monitoring
- StatefulSets
- LAB #1 - Mise en Place d'un StatefulSet Simple
- 1.1 - Création du Service et du StatefulSet
- 1.2 - Mise en Place d'un Scale Up
- 1.3 - Mise en Place d'un Scale Down
- 1.4 - Suppression du StatefulSet
- StorageClass Avancé
- LAB #2 - Provisionnement NFS dynamique
- 2.1 - Configuration du Serveur NFS
- 2.2 - Configuration des Clients NFS
- 2.3 - Configuration de K8s
- 2.4 - Création d'un PersistentVolumeClaim
- 2.5 - Utilisation du PersistentVolumeClaim avec un pod
- 2.6 - Création d'un Deuxième PersistentVolumeClaim
- 2.7 - Suppression des PersistentVolumeClaims
- Helm Avancé
- LAB #3 - Création d'un Paquet Helm Simple
- 3.1 - Le Fichier values.yaml
- 3.2 - Les Templates
- 3.3 - Installation et Suppression
- Monitoring
- LAB #4 - Mise en Place d'une Solution Prometheus
- 4.1 - Déploiement du Stack avec Helm
- 4.2 - Consultation des Données avec Grafana
- 4.3 - Consultation des Alertes avec le Web UI de Prometheus
- DOF311 - Validation des Acquis
- 60 questions issues d'un pool de 104 questions
Copyright © 2024 Hugh Norris - Document non-contractuel. Le programme peut être modifié sans préavis.