Redis
 sql >> Database >  >> NoSQL >> Redis

Come distribuire un node.js con redis su kubernetes?

Penso di aver trovato una soluzione (usando una distribuzione e un servizio).

Per la mia distribuzione, ho utilizzato due contenitori (webapp + redis) all'interno di un Pod, poiché non ha senso che una webapp venga eseguita senza un'istanza redis attiva e inoltre si connette a redis all'avvio dell'applicazione. Potrei sbagliarmi in questo ragionamento, quindi sentiti libero di correggermi se la pensi diversamente.

Ecco la mia distribuzione:

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: {}

Ed ecco la definizione del servizio:

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

Creo la distribuzione con:kubectl create -f deployment.yaml Quindi, creo il servizio con kubectl create -f service.yaml Ho letto l'IP con minikube ip ed estrai la porta dall'output di kubectl describe service my-app-service .