# Comment créer un pod Kubernetes ?

La configuration des pods Kubernetes se fait **de manière impérative, déclarative ou à l’aide d’interfaces API**. Ce faisant, vous pouvez également spécifier et adapter des ressources supplémentaires pour les conteneurs contenus.

## Create a pod in Kubernetes : ce qu’il faut savoir avant de créer un pod

Pour exécuter un [pod Kubernetes](https://www.ionos.fr/digitalguide/serveur/configuration/kubernetes-pod/), vous avez besoin d’un **cluster Kubernetes** en cours d’exécution, soit localement sur un système de développement, soit dans un environnement Cloud ou sur site. Pour l’installation, nous vous recommandons de lire notre [tutoriel Kubernetes](https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-kubernetes/). L’outil de ligne de commande kubectl doit être présent et configuré sur l’ordinateur afin de permettre l’interaction avec le cluster Kubernetes. Vérifiez que le fichier *kubeconfig* est correctement configuré afin d’établir une connexion réussie au cluster.

Conseil [Managed Kubernetes](https://cloud.ionos.fr/managed/kubernetes "Hébergement de Kubernetes géré - créez votre prochain cluster (ionos.fr)") de IONOS garantit la haute disponibilité de vos déploiements K8s tout en optimisant les coûts. L’intégration à l’écosystème Cloud de IONOS offre également un stockage de données persistant avancé et entièrement intégré.

## Créer un pod Kubernetes étape par étape

Il existe trois manières de créer des pods dans Kubernetes :

- Par méthode impérative
- Par méthode déclarative
- En utilisant l’interface API

### Configuration impérative

Avec la méthode impérative, vous donnez au système des instructions explicites via la ligne de commande `kubectl` sur la manière de créer un pod Kubernetes, sans avoir préparé au préalable un fichier de configuration détaillé.

```shell
kubectl run nginx --image=nginx --restart=Never
```

Cette commande crée un seul pod nommé **nginx**, qui contient le serveur Web Nginx.

Comme la méthode impérative effectue directement des modifications sans qu’il y ait une définition claire de l’état prévu, l’approche déclarative est généralement recommandée.

### Configuration déclarative

L’approche déclarative de Kubernetes nécessite de définir l’état souhaité des ressources à l’aide de **fichiers de configuration YAML**.

Ouvrez un éditeur de texte et créez un fichier YAML, par exemple `nginx-pod.yaml`, qui décrit l’état souhaité du pod Nginx.

```yaml
apiVersion: v1
kind: Pod
metadata:
    name: nginx-pod
spec:
    containers:
    - name: nginx-container
        image: nginx:latest
        ports:
        - containerPort: 80
```

Utilisez la commande `kubectl apply` pour activer le pod Kubernetes basé sur la configuration déclarative.

```shell
kubectl apply -f nginx-pod.yaml
```

Les configurations déclaratives que vous indiquez dans les fichiers YAML sont un enregistrement concret de **l’état prévu**, y compris la version du pod à créer. Il en résulte une gestion et une surveillance transparentes des ressources dans votre cluster Kubernetes.

### Utiliser l’interface API

Kubernetes propose une **API RESTful** qui vous permet d’interagir avec le cluster Kubernetes. Avant d’utiliser l’API, vous devez vous authentifier et vous autoriser. Cela se fait généralement en fournissant des jetons d’accès ou des certificats, selon la configuration du cluster Kubernetes.

```shell
cat > nginx-pod.json <<EOF
{
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
        "name": "nginx-pod"
    },
    "spec": {
        "containers": [
            {
                "name": "nginx-container",
                "image": "nginx:latest",
                "ports": [
                    {
                        "containerPort": 80
                    }
                ]
            }
        ]
    }
}
EOF
```

Pour activer le pod Kubernetes, utilisez `curl` pour communiquer avec l’API REST du cluster Kubernetes :

```shell
curl -k -v -X POST -H "Authorization: Bearer <JWT_TOKEN>" -H "Content-Type: application/json" \
https://cluster-ip:6443/api/v1/namespaces/default/pods -d @nginx-pod.json
```

La commande `curl` envoie une **requête HTTPS-POST** à un point d’extrémité du cluster Kubernetes. Les options `-k` et `-v` représentent l’ignorance de la vérification du certificat SSL et le mode verbose. `-X POST` permet de définir une requête POST. L’en-tête « *Authorization* » contient un jeton de prise en charge (remplacez `<JWT_TOKEN>` par le jeton réel) et « *Content-Type* » indique le type de format de données en JSON. L’option `-d@nginx-pod.json` envoie les données au serveur.

## Voir les pods

Pour vérifier l’état actuel de tous les pods dans l’**espace de noms**, tapez la commande suivante :

```shell
kubectl get pods
```

Le résultat est une liste des pods existants contenant leur état, l’heure de démarrage et d’autres informations.

Vous pouvez obtenir des informations plus détaillées avec :

```shell
kubectl describe pod my-pod
```

Cette commande renvoie des informations détaillées sur le pod, y compris sa configuration, les événements et les transitions d’état.

Pour afficher les **journaux** du conteneur principal dans le pod Kubernetes :

```shell
kubectl logs my-pod
```

Si vous avez plusieurs containers, vous pouvez marquer le container avec l’option `-c`.

## Supprimer un pod

La suppression d’un pod n’est pas compliquée et peut être effectuée avec une simple commande.

```shell
kubectl delete pod nginx
```

Cela permet d’arrêter le pod Kubernetes sélectionné et de supprimer le conteneur associé du cluster. Dans l’exemple suivant, nous avons supprimé avec succès le pod Nginx du cluster.


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/creer-un-pod-kubernetes/](https://www.ionos.fr/digitalguide/serveur/configuration/creer-un-pod-kubernetes/) for AI/LLM consumption.