Commit c815f985 authored by Nane Kratzke's avatar Nane Kratzke
Browse files

Redis deploy

parent 0ca452d0
......@@ -5,3 +5,14 @@ stages:
- build
- deploy
- terminate
volumes:
stage: prepare
script:
- kubectl apply -f volumes/redis-pvc.yaml
redis:
stage: deploy
script:
- kubectl apply -f deploy/redis-dep.yaml
- kubectl apply -f deploy/redis-svc.yaml
# lab-stream
# Lab 10: Messaging-basierte Interaktion
Wir werden Messaging am Beispiel von Redis demonstrieren. Wir nutzen Redis, weil dies einfach zu deployen ist und bereits an anderen Stellen in Labs verwendet wurde und wir so den Technologiestack übersichtlich und die Komplexität überschaubar halten können. Redis wurde zwar primär als In-Memory Key-Value Datenbank entwickelt, doch hat mittlerweile sowohl Publish-Subscribe als auch Queueing Features erhalten, die für einfache Anwendungsfälle durchaus ausreichend sind. Als Messaging-Komponenten werden in Cloud-nativen Systemen häufig "klassische" Lösungen wie bspw. [Kafka](https://kafka.apache.org), [Nats](https://nats.io), [RabbitMQ](https://www.rabbitmq.com), [ActiveMQ](https://activemq.apache.org) und weitere [AMQP](https://www.amqp.org)- oder [MQTT](https://mqtt.org)-konforme Lösungen verwendet. Die in diesem Lab am Beispiel von Redis vermittelten Prinzipien sind aber durchaus auf diese Systeme übertragbar.
## Inhalt
- [Lab 10: Messaging-basierte Interaktion](#lab-10-messaging-basierte-interaktion)
- [Inhalt](#inhalt)
- [Vorbereitung](#vorbereitung)
- [Übung 01: Pub/Sub Messaging (Fan Out)](#übung-01-pubsub-messaging-fan-out)
- [Übung 02: Queueing](#übung-02-queueing)
- [Verständnis- und Transferfragen](#verständnis--und-transferfragen)
- [Links](#links)
- [Was sollten Sie mitnehmen](#was-sollten-sie-mitnehmen)
## Vorbereitung
## Übung 01: Pub/Sub Messaging (Fan Out)
```
+--M3,M2,M1-> C
|
P --M3,M2,M1--+--M3,M2,M1-> C
|
+--M3,M2,M1-> C
```
## Übung 02: Queueing
```
+--M4,M1-> C2
|
P --M4,M3,M2,M1--+-----M2-> C3
|
+-----M3-> C4
```
## Verständnis- und Transferfragen
- A
- B
- C
## Links
- [Redis](https://redis.io)
- [Introduction to Redis Streams](https://redis.io/topics/streams-intro)
- Weitere Messaging Lösungen wie [Kafka](https://kafka.apache.org), [Nats](https://nats.io), [RabbitMQ](https://www.rabbitmq.com), [ActiveMQ](https://activemq.apache.org)
- Messaging Standards wie [AMQP](https://www.amqp.org) und [MQTT](https://mqtt.org)
## Was sollten Sie mitnehmen
- A
- B
- C
\ No newline at end of file
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
volumes:
- name: vol
persistentVolumeClaim:
claimName: redis-pvc
containers:
- name: redis
image: redis:6.2
volumeMounts:
- name: vol
mountPath: /data
apiVersion: v1
kind: Service
metadata:
name: redis-svc
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment