working deployment setup

This commit is contained in:
Thilo Behnke
2022-08-10 18:16:41 +02:00
parent c120f9862e
commit dc45866b3f

194
k8s.yml
View File

@@ -1,194 +0,0 @@
---
apiVersion: v1
kind: Pod
metadata:
name: kafka-zookeeper
labels:
wasm.pong.io/name: kafka-zookeeper
spec:
containers:
- name: kafka-zookeeper
image: bitnami/zookeeper:latest
env:
- name: ALLOW_ANONYMOUS_LOGIN
value: "yes"
ports:
- containerPort: 2181
name: zookeeper-svc
---
apiVersion: v1
kind: Service
metadata:
name: kafka-zookeeper-service
spec:
selector:
wasm.pong.io/name: kafka-zookeeper
ports:
- name: kafka-zookeeper-service-port
protocol: TCP
port: 2181
targetPort: zookeeper-svc
#---
#apiVersion: v1
#kind: Deployment
#metadata:
# name: kafka-zookeeper-deployment
# labels:
# wasm.pong.io/name: kafka-zookeeper
#spec:
# replicas: 1
# selector:
# matchLabels:
# wasm.pong.io/name: kafka-zookeeper
# template:
# metadata:
# labels:
# wasm.pong.io/name: kafka-zookeeper
# spec:
# containers:
# - name:
#
#
#
---
apiVersion: v1
kind: Pod
metadata:
name: kafka
labels:
wasm.pong.io/name: kafka
spec:
containers:
- name: kafka
image: docker-registry:443/wasm-pong/kafka
ports:
- containerPort: 9092
name: bootstrap-svc
- containerPort: 7243
name: topic-svc
env:
- name: KAFKA_BROKER_ID
# TODO: How to manage the broker id with multiple replicas?
value: "1"
- name: KAFKA_CFG_INTER_BROKER_LISTENER_NAME
# TODO: This will not work with multiple replicas
value: LOCAL
- name: KAFKA_CFG_LISTENERS
value: LOCAL://localhost:9093,K8S://:9092
- name: KAFKA_CFG_ADVERTISED_LISTENERS
value: LOCAL://localhost:9093,K8S://kafka-service:9092
- name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP
value: LOCAL:PLAINTEXT,K8S:PLAINTEXT
- name: KAFKA_CFG_ZOOKEEPER_CONNECT
value: kafka-zookeeper-service:2181
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
livenessProbe:
exec:
command:
- "/opt/bitnami/kafka/bin/kafka-topics.sh"
- "--bootstrap-server localhost:9093"
- "--describe"
initialDelaySeconds: 10
periodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
name: kafka-service
spec:
selector:
wasm.pong.io/name: kafka
ports:
- name: kafka-service-port
protocol: TCP
port: 9092
targetPort: bootstrap-svc
- name: kafka-topic-service-port
protocol: TCP
port: 7243
targetPort: topic-svc
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
wasm.pong.io/name: nginx
spec:
containers:
- name: client
image: docker-registry:443/wasm-pong/nginx
env:
- name: API_SERVER
value: pong-server-service
ports:
- containerPort: 80
name: http-svc
- containerPort: 443
name: https-svc
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
wasm.pong.io/name: nginx
type: LoadBalancer
ports:
- name: nginx-port
protocol: TCP
port: 80
targetPort: http-svc
- name: nginx-sec-port
protocol: TCP
port: 443
targetPort: https-svc
---
apiVersion: v1
kind: Pod
metadata:
name: pong-server
labels:
wasm.pong.io/name: pong-server
spec:
# https://stackoverflow.com/a/53852500/14388607
initContainers:
- name: wait-for-kafka
image: darthcabs/tiny-tools:1
args:
- /bin/bash
- -c
- >
set -x;
while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://kafka-service:7243/health_check)" != "200" ]]; do
echo '.'
sleep 15;
done
containers:
- name: client
image: docker-registry:443/wasm-pong/pong-server
env:
- name: KAFKA_HOST
value: 'kafka-service:9092'
- name: KAFKA_TOPIC_MANAGER_HOST
value: 'kafka-service:7243'
- name: RUST_BACKTRACE
value: '1'
ports:
- containerPort: 4000
name: http-svc
---
apiVersion: v1
kind: Service
metadata:
name: pong-server-service
spec:
selector:
wasm.pong.io/name: pong-server
ports:
- name: pong-server-port
protocol: TCP
port: 4000
targetPort: http-svc