|
@@ -0,0 +1,153 @@
|
|
|
+apiVersion: v1
|
|
|
+kind: Service
|
|
|
+metadata:
|
|
|
+ name: kafka-service
|
|
|
+ labels:
|
|
|
+ run: kafka
|
|
|
+ annotations:
|
|
|
+ metallb.universe.tf/allow-shared-ip: "kafka"
|
|
|
+# namespace: kafka
|
|
|
+spec:
|
|
|
+ ports:
|
|
|
+ - name: kafka
|
|
|
+ protocol: TCP
|
|
|
+ port: 9092
|
|
|
+ targetPort: 9092
|
|
|
+ selector:
|
|
|
+ run: kafka
|
|
|
+ type: LoadBalancer
|
|
|
+ loadBalancerIP: 10.42.42.238
|
|
|
+ externalTrafficPolicy: Local
|
|
|
+#---
|
|
|
+#apiVersion: v1
|
|
|
+#kind: Service
|
|
|
+#metadata:
|
|
|
+# name: kafka-udp
|
|
|
+# labels:
|
|
|
+# run: kafka
|
|
|
+# annotations:
|
|
|
+# metallb.universe.tf/allow-shared-ip: "kafka"
|
|
|
+#spec:
|
|
|
+# ports:
|
|
|
+# - name: dns
|
|
|
+# protocol: UDP
|
|
|
+# port: 53
|
|
|
+# targetPort: 53
|
|
|
+# selector:
|
|
|
+# run: kafka
|
|
|
+# type: LoadBalancer
|
|
|
+# loadBalancerIP: 10.42.42.238
|
|
|
+# externalTrafficPolicy: Local
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: PersistentVolume
|
|
|
+metadata:
|
|
|
+ name: kafka
|
|
|
+# namespace: kafka
|
|
|
+spec:
|
|
|
+ capacity:
|
|
|
+ storage: 5Mi
|
|
|
+ volumeMode: Filesystem
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteMany
|
|
|
+ persistentVolumeReclaimPolicy: Retain # Keep 4eva
|
|
|
+ storageClassName: default
|
|
|
+ mountOptions:
|
|
|
+ - hard
|
|
|
+ - nfsvers=3
|
|
|
+ nfs:
|
|
|
+ path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/kafka
|
|
|
+ server: 10.42.42.10
|
|
|
+ claimRef:
|
|
|
+ name: kafka
|
|
|
+# namespace: default
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: PersistentVolumeClaim
|
|
|
+metadata:
|
|
|
+ name: kafka
|
|
|
+ annotations:
|
|
|
+ nfs.io/storage-path: "kafka"
|
|
|
+# namespace: kafka
|
|
|
+spec:
|
|
|
+ storageClassName: default
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteMany
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ storage: 5Mi
|
|
|
+status: {}
|
|
|
+---
|
|
|
+apiVersion: apps/v1
|
|
|
+kind: Deployment
|
|
|
+metadata:
|
|
|
+ name: kafka
|
|
|
+# namespace: kafka
|
|
|
+spec:
|
|
|
+ replicas: 1
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ run: kafka
|
|
|
+ strategy:
|
|
|
+ type: Recreate
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ run: kafka
|
|
|
+ spec:
|
|
|
+ terminationGracePeriodSeconds: 30
|
|
|
+ containers:
|
|
|
+ - image: ubuntu/kafka:latest
|
|
|
+ imagePullPolicy: "Always"
|
|
|
+ name: kafka
|
|
|
+ env:
|
|
|
+ - name: TZ
|
|
|
+ value: US/Michigan
|
|
|
+ - name: ZOOKEEPER_HOST
|
|
|
+ value: 10.152.183.45
|
|
|
+# Gather from kubectl get services -n kafka
|
|
|
+ - name: ZOOKEEPER_PORT
|
|
|
+ value: "2181"
|
|
|
+ args: ["/etc/kafka/server.properties"]
|
|
|
+# args: ["/etc/kafka/server.properties", "--override", "advertised.listeners=PLAINTEXT://kafka-service:9092"]
|
|
|
+# args: ["--override", "advertised.listeners=PLAINTEXT://kafka.home.monkeybox.org:9092"]
|
|
|
+ ports:
|
|
|
+ - containerPort: 9092
|
|
|
+ name: kafka
|
|
|
+ protocol: TCP
|
|
|
+ resources: {}
|
|
|
+ volumeMounts:
|
|
|
+ - mountPath: /kafka
|
|
|
+ name: kafka
|
|
|
+ restartPolicy: Always
|
|
|
+ volumes:
|
|
|
+ - name: kafka
|
|
|
+ persistentVolumeClaim:
|
|
|
+ claimName: kafka
|
|
|
+status: {}
|
|
|
+#---
|
|
|
+## Hosting
|
|
|
+#apiVersion: networking.k8s.io/v1
|
|
|
+#kind: Ingress
|
|
|
+#metadata:
|
|
|
+# name: kafka-management
|
|
|
+# annotations:
|
|
|
+# #nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
|
|
+# #nginx.ingress.kubernetes.io/proxy-ssl-verify: "off"
|
|
|
+# cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
|
+#spec:
|
|
|
+# tls:
|
|
|
+# - hosts:
|
|
|
+# - kafka.monkeybox.org
|
|
|
+# secretName: kafka-tls
|
|
|
+# rules:
|
|
|
+# - host: kafka.monkeybox.org
|
|
|
+# http:
|
|
|
+# paths:
|
|
|
+# - path: /
|
|
|
+# pathType: Prefix
|
|
|
+# backend:
|
|
|
+# service:
|
|
|
+# name: kafka-service
|
|
|
+# port:
|
|
|
+# number: 80
|