Lab 01 : Déployer un Cluster OKS
Dans cet atelier, vous allez découvrir comment déployer un cluster Kubernetes en utilisant notre solution managée. Vous apprendrez à explorer et gérer ce cluster via la ligne de commande avec oks-cli. Enfin, vous apprendrez à déployer une application simple sur Kubernetes.
Architecture du TP
Section intitulée « Architecture du TP »Dans cette partie, vous allez apprendre à :
- Configurer l’outil
oks-clipour interagir et gérer votre cluster Kubernetes. - Configurer l’outil
kubectlpour gérer le cluster. - Déployer une application simple sur le cluster Kubernetes.
- Gérer vos profils OKS.
Installation d’un Environnement Virtuel (venv)
Section intitulée « Installation d’un Environnement Virtuel (venv) »- Création de l’Environnement Virtuel
Pour éviter des conflits avec les paquets système, il est recommandé d’utiliser un environnement virtuel Python pour installer oks-cli. Voici comment procéder :
python3 -m venv .venvCela créera un répertoire .venv dans lequel l’environnement virtuel sera stocké.
- Activation de l’Environnement Virtuel
Ensuite, vous devez activer l’environnement virtuel en fonction de votre système d’exploitation :
- Sur Linux ou macOS :
source .venv/bin/activate-
Sur Windows (cmd.exe) :
.venv\Scripts\activate.bat
-
Sur Windows (PowerShell) :
.venv\Scripts\Activate.ps1
Une fois l’environnement activé, votre invite de commande changera pour afficher le nom de l’environnement (par exemple, .venv), ce qui signifie que vous travaillez désormais dans cet environnement virtuel.
Installation d’OKS CLI
Section intitulée « Installation d’OKS CLI »Une fois l’environnement virtuel activé, vous pouvez installer l’outil oks-cli :
pip install https://docs.eu-west-2.oks.outscale.com/oks-cli/oks_cli-latest.zip- Vérification de l’Installation
Pour vérifier que l’installation de oks-cli a réussi, exécutez la commande suivante :
oks-cli versionCela devrait afficher la version de l’outil oks-cli.
- Voir toutes les options disponibles
Pour voir toutes les options disponibles, vous pouvez exécuter la commande suivante :
oks-cli fullhelpGénération du fichier d’autocomplétion
Section intitulée « Génération du fichier d’autocomplétion »Pour générer le fichier d’autocomplétion pour oks-cli, exécutez la suite de commandes suivante :
mkdir -p $HOME/.oks_cli/completions/
_OKS_CLI_COMPLETE=bash_source oks-cli > $HOME/.oks_cli/completions/oks-cli.bash
. $HOME/.oks_cli/completions/oks-cli.bashecho '. $HOME/.oks_cli/completions/oks-cli.bash' >> $HOME/.bashrcCela va créer un fichier contenant les règles d’autocomplétion spécifiques à Bash.
Installation de Kubectl
Section intitulée « Installation de Kubectl »Une fois l’environnement virtuel configuré et oks-cli installé, vous pouvez installer kubectl pour gérer votre cluster Kubernetes.
- Prérequis système
Vous devez utiliser une version de kubectl qui diffère d’une version mineure de la version de votre cluster Kubernetes.
- Installation de Kubectl sur Linux
Pour installer la dernière version de kubectl, utilisez cette commande :
curl -LO https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectlSi vous souhaitez installer une version spécifique, remplacez $(curl -Ls https://dl.k8s.io/release/stable.txt) par le numéro de version souhaité.
Par exemple, pour installer la version 1.32.0 :
curl -LO https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl- Rendre le binaire exécutable
Une fois le binaire téléchargé, vous devez le rendre exécutable :
chmod +x ./kubectl- Déplacer le binaire dans votre PATH
Déplacez le fichier exécutable dans un répertoire de votre PATH :
sudo mv ./kubectl /usr/local/bin/kubectl- Vérification de l’installation
Vérifiez que kubectl est installé correctement en exécutant la commande suivante :
kubectl version --client- Autres méthodes d’installation
Vous pouvez également consulter la documentation officielle de Kubernetes pour plus de méthodes d’installation sur différentes plateformes :
https://kubernetes.io/fr/docs/tasks/tools/install-kubectl/
Configuration de kubectl
Section intitulée « Configuration de kubectl »Afin de rendre l’utilisation de kubectl plus fluide, vous pouvez configurer des alias et l’auto-complétion.
- Configurer un alias pour kubectl
Ajoutez l’alias suivant à votre fichier .bashrc ou .zshrc pour raccourcir la commande kubectl :
alias k='kubectl'Ensuite, rechargez votre fichier de configuration :
source ~/.bashrc # ou source ~/.zshrc pour ZshDésormais, vous pouvez utiliser k au lieu de kubectl.
- Activer l’auto-complétion pour kubectl
Pour activer l’auto-complétion, exécutez les commandes suivantes :
-
Installez le script d’auto-complétion :
Terminal window $ kubectl completion bash > ~/.kubectl-completion$ source ~/.kubectl-completion -
Ajoutez cette ligne dans votre fichier
.bashrcou.zshrc:source <(kubectl completion bash)
Rechargez votre fichier de configuration :
source ~/.bashrc # ou source ~/.zshrc pour ZshL’auto-complétion est maintenant activée.
Gestion des Profils OKS
Section intitulée « Gestion des Profils OKS »L’accès à vos clusters Kubernetes via oks-cli est organisé par profils. Un profil OKS correspond à un compte Outscale associé à des projets et des clusters, permettant une gestion simplifiée de vos ressources.
- Pour lister tous les profils disponibles :
oks-cli profile listExemple de sortie :
Profile: default Account type: ak/sk Region: eu-west-2 Endpoint: https://api.eu-west-2.oks.outscale.com/api/v2/Profile: my-second-profile Account type: username/password Region: eu-west-2 Endpoint:https://api.eu-west-2.oks.outscale.com/api/v2/- Pour ajouter un profil existant :
oks-cli profile add --profile-name "my-second-profile" --access-key <ACCESS_KEY> --secret-key <SECRET_KEY> --region eu-west-2Vous pouvez également ajouter un profil avec une clé d’accès et une clé secrète :
oks-cli profile add --profile-name "my-third-profile" --access-key MY_ACCESS_KEY --secret-key MY_SECRET_KEY --region eu-west-2Les noms de profils doivent être uniques. Si vous omettez le nom du profil lors de l’ajout, le profil par défaut sera mis à jour.
- Pour mettre à jour un profil avec une nouvelle région et un nouvel endpoint :
oks-cli profile update --profile-name my-third-profile --region cloudgouv-eu-west-1Gestion des Projets OKS
Section intitulée « Gestion des Projets OKS »- Pour lister vos projets disponibles :
oks-cli --profile my-profile project list- Pour créer un nouveau projet avec une plage CIDR spécifique :
oks-cli --profile my-profile project create --project-name my-project --description 'Lab project'- Pour obtenir les informations détaillées sur un projet :
oks-cli --profile my-profile project get --project-name my-projectCréation et Gestion des Clusters Kubernetes
Section intitulée « Création et Gestion des Clusters Kubernetes »Chaque cluster dans OKS doit être associé à un projet. Une fois votre projet créé, vous pouvez procéder à la création de votre cluster.
- Lister les Clusters Pour afficher tous les clusters disponibles dans un projet :
oks-cli --profile my-profile cluster list --project-name my-projectExemple de sortie :
| id | name | created | status |
| ee46b46c-c20a-4c56-a791-74e523ec17ae | my-cluster | 3 minutes ago | ready |
- Créer un Cluster Pour créer un cluster Kubernetes avec des paramètres définis :
oks-cli --profile my-profile cluster create --project-name my-project --cluster-name my-cluster --admin "xx.xx.xx.xx/xx" --control-plane "cp.mono.master" --version 1.30--cluster-name: Nom du cluster (unique dans le projet).--project-name: Projet où le cluster sera créé.--admin: IP(s) ou plages d’IP autorisées à gérer le cluster.--control-plane: Taille du Control Plane (mono ou multi-AZ).--version: Version de Kubernetes.
Pour avoir l’IP autorisée:
curl -4 ifconfig.me- Vérifier le Statut du Cluster Après avoir lancé la création du cluster, vérifiez son statut :
oks-cli --profile my-profile cluster list --project-name my-projectExemple de progression :
| id | name | created | status |
| ee46b46c-c20a-4c56-a791-74e523ec17ae | my-cluster | 10 seconds ago | deploying |
| ee46b46c-c20a-4c56-a791-74e523ec17ae | my-cluster | 3 minutes ago | ready |
- Obtenir les Détails du Cluster Pour afficher des informations détaillées sur un cluster spécifique :
oks-cli --profile my-profile cluster get --project-name my-project --cluster-name my-clusterCela inclut des détails tels que les IPs whitelistes, les plages CIDR pour les pods et les services, et le statut.
- Accéder à un Cluster
Une fois le cluster créé, vous pouvez récupérer son kubeconfig pour y accéder avec
kubectl:
oks-cli --profile my-profile cluster kubeconfig --cluster-name my-cluster --project-name my-project > kubeconfig.yamlexport KUBECONFIG=./kubeconfig.yamlTestez l’accès avec :
kubectl get nsCréer un Nodepool dans le Cluster
Section intitulée « Créer un Nodepool dans le Cluster »Déploiement d’un NodePool via OKS-CLI
Section intitulée « Déploiement d’un NodePool via OKS-CLI »Une fois le cluster créé, vous pouvez ajouter un nodepool pour augmenter la capacité du cluster avec des nœuds supplémentaires.
Pour créer un nodepool, utilisez la commande suivante :
oks-cli cluster nodepool --cluster-name my-cluster --project-name my-project create --nodepool-name my-nodepool --type "tinav6.c4r6p2" --count 3- Voici les paramètres utilisés dans cette commande :
- —project-name my-project : Le nom du projet auquel appartient le cluster.
- —cluster-name my-cluster : Le nom du cluster où le nodepool sera ajouté.
- —nodepool-name my-nodepool : Le nom du nodepool que vous souhaitez créer.
- —type “tinav6.c4r6p2” : Le type des machines virtuelles pour les nœuds (exemple :
tinav6.c4r6p2). - —count 3 : Le nombre de nœuds à ajouter au nodepool.
- Une fois la commande exécutée, vous pouvez vérifier que le nodepool a bien été créé avec :
oks-cli cluster nodepool --project-name my-project --cluster-name my-cluster listCela vous donnera la liste des nodepools existants dans votre cluster.
Déploiement d’un NodePool via un manifeste Kubernetes
Section intitulée « Déploiement d’un NodePool via un manifeste Kubernetes »En plus de la création de NodePools via la CLI OKS, il est également possible de gérer les NodePools de manière déclarative à l’aide de manifestes Kubernetes.
Créez un fichier nodepool.yaml avec le contenu suivant :
apiVersion: oks.dev/v1beta2kind: NodePoolmetadata: name: nodepool-01spec: desiredNodes: 2 nodeType: tinav7.c2r4p2 zones: - eu-west-2a upgradeStrategy: maxUnavailable: 1 maxSurge: 0 autoUpgradeEnabled: true autoUpgradeMaintenance: durationHours: 1 startHour: 12 weekDay: Tue autoHealing: trueAppliquez la configuration avec la commande suivante :
kubectl apply -f nodepool.yamlVérifiez que le NodePool a bien été créé :
kubectl get nodepoolsIdentification des nœuds
Section intitulée « Identification des nœuds »kubectl get nodeskubectl describe node <node-name>Cette commande fournit des informations détaillées sur le nœud Kubernetes spécifié. Cela inclut les labels, les taints, les capacités, les conditions actuelles, et les pods qui y sont déployés.
Tips : Pour éviter de rentrer le nom du projet à chaque commande vous pouvez utiliser cette commande
oks-cli project login <project-name>