Exemple complet de déploiement ============================== Voici un exemple complet du déploiement d'un serveur web de test présentant la page minimaliste `whoami `_ de containous. L'image est disponible sur le `DockerHub `_ . La partie **Deployment** permet de gérer le déploiement et la résilience des pods en eux-même : .. code-block:: apiVersion: apps/v1 kind: Deployment metadata: name: whoami labels: app: whoami spec: replicas: 2 selector: matchLabels: app: whoami template: metadata: labels: app: whoami spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - whoami topologyKey: "kubernetes.io/hostname" containers: - name: test image: docker.io/traefik/whoami:v1.10.3 imagePullPolicy: Always readinessProbe: httpGet: path: /index.html port: 80 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: path: /index.html port: 80 initialDelaySeconds: 5 periodSeconds: 10 ports: - name: web containerPort: 80 resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" Les **Services** et **IngressRoute** permettent de l'exposer (NB, il se peut que vous deviez modifier le host si celui-ci existe déjà sur le cluster) : .. code-block:: apiVersion: v1 kind: Service metadata: name: whoami spec: ports: - protocol: TCP name: web port: 80 selector: app: whoami --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: whoami spec: entryPoints: - websecure routes: - match: Host(`whoami.kns.dri.fr`) kind: Rule services: - name: whoami port: 80 Ces manifestes peuvent être stockés ensemble ou séparémment dans des fichiers yaml, et déployés via la commande `kubectl `_ ``apply`` N'oubliez pas de spécifier votre namespace via l'option ``-n`` ou ``--namespace``, ou encore avec un outil comme `kubens `_.