Skip to content

Un premier déploiement dans notre cluster

Estimated time to read: 1 minute

Et si on essayait de déployer un truc dans notre cluster, par exemple un cinema en ascii 🍿

Note

Rebasculer à la racine du repo cd ..

kubectl apply -f demos/simple-deployment.yml
Pour les curieux, le contenu de simple-deployment.yml
---
apiVersion: v1
kind: Namespace
metadata:
  name: demos
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: simple-deployment
  namespace: demos
spec:
  replicas: 1
  selector:
    matchLabels:
      app: simple-deployment
  template:
    metadata:
      labels:
        app: simple-deployment
    spec:
      containers:
        - name: simple-deployment
          image: d3fk/asciinematic:latest
          ports:
            - name: http
              containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: simple-deployment-service
  namespace: demos
spec:
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: simple-deployment

Installation réussie

namespace/demos created
deployment.apps/simple-deployment created
service/simple-deployment-service created

On vérifie que tout est ok:

kubectl get deployments -n demos

Démo déployée

NAME                READY   UP-TO-DATE   AVAILABLE   AGE
simple-deployment   1/1     1            1           39s

Mainteant, pour accéder à notre cinéma, il faut créer un tunnel vers notre cluster:

kubectl -n demos port-forward $(kubectl get pods -o=name -n demos) 8080:80

🎥 Notre application est disponible http://localhost:8080

Ok, ca marche mais c'est pas super pratique pour:

  • travailler en équipe
  • il faut faire le mapping des ports et des hosts pour chaque application
  • ...

Pour accéder depuis l'extérieur, il va nous falloir un soupçon d'Ingress et un Ingress Controller pour gérer cela pour nous.

🛣️ En route pour la découverte de comment Nginx controller va nous faciliter la vie ➡️