Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Wie stellt man eine node.js mit Redis auf Kubernetes bereit?

Ich glaube, ich habe eine Lösung gefunden (unter Verwendung einer Bereitstellung und eines Dienstes).

Für mein Deployment habe ich zwei Container (Webapp + Redis) innerhalb eines Pods verwendet, da es für eine Webapp nicht sinnvoll ist, ohne aktive Redis-Instanz zu laufen, und zusätzlich beim Anwendungsstart eine Verbindung zu Redis herstellt. Ich könnte mich in dieser Argumentation irren, also fühlen Sie sich frei, mich zu korrigieren, wenn Sie anders denken.

Hier ist meine Bereitstellung:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  selector:
    matchLabels:
      app: my-app-deployment
  template:
    metadata:
      labels:
        app: my-app-deployment
    spec:
      containers:
      - name: redis
        image: redis:latest
        ports:
        - containerPort: 6379
        volumeMounts:
        - mountPath: /srv/www
          name: redis-storage
      - name: my-app
        image: my-app:latest
        imagePullPolicy: Never
        ports:
        - containerPort: 8080
      volumes:
      - name: redis-storage
        emptyDir: {}

Und hier ist die Dienstdefinition:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  ports:
  - port: 8080
    protocol: TCP
  type: NodePort
  selector:
    app: my-app-deployment

Ich erstelle die Bereitstellung mit:kubectl create -f deployment.yaml Dann erstelle ich den Dienst mit kubectl create -f service.yaml Ich lese die IP mit minikube ip und extrahieren Sie den Port aus der Ausgabe von kubectl describe service my-app-service .