Pods

Les Pods sont les plus petites unités informatiques déployables qui peuvent être créées et gérées dans Kubernetes.

Un pod est un groupe d’un ou plusieurs conteneurs (comme des conteneurs Docker), ayant du stockage/réseau partagé, et une spécification sur la manière d’exécuter ces conteneurs.

Les conteneurs d’un pod partagent une adresse IP et un espace de ports, et peuvent communiquer via localhost. Ils peuvent aussi communiquer entre eux en utilisant des communications inter-process standard comme les sémaphores SystemV ou la mémoire partagée POSIX.

Fichier de description

apiVersion: v1
kind: Pod
metadata:
  name: [podName]
  namespace: [namespace]
  labels:
    [label]: value
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
  - name: debian
    image: debian
    command: ["sleep", "600"]

Templates de pods

Nous ne sommes pas sensés manipuler les pods directement mais à travers des contrôleurs, comme les deployments, les daemonsets, les statefulsets ou encore les jobs.

apiVersion: batch/v1
kind: Job
metadata:
  name: hello
spec:
  template:
    # This is the pod template
    spec:
      containers:
      - name: hello
        image: busybox:1.28
        command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']
      restartPolicy: OnFailure
    # The pod template ends here