Ceci est une ancienne révision du document !


Version : 2025.01

Last update : 2025/01/05 13:45

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
    • 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.

Menu