apiVersion: apps/v1 kind: StatefulSet metadata: name: redpanda namespace: redpanda labels: app: redpanda spec: replicas: 0 selector: matchLabels: app: redpanda serviceName: redpanda template: metadata: labels: app: redpanda spec: containers: - name: redpanda image: docker.redpanda.com/redpandadata/redpanda:latest command: - rpk - redpanda - start - --smp=1 - --memory=1536M - --reserve-memory=0M - --overprovisioned - --kafka-addr=INTERNAL://0.0.0.0:9092,EXTERNAL://0.0.0.0:9093 - --advertise-kafka-addr=INTERNAL://redpanda.redpanda.svc.cluster.local:9092,EXTERNAL://100.64.0.1:30094 - --pandaproxy-addr=0.0.0.0:8082 - --advertise-pandaproxy-addr=redpanda.redpanda.svc.cluster.local:8082 ports: - name: kafka-internal containerPort: 9092 - name: kafka-external containerPort: 9093 - name: admin containerPort: 9644 - name: proxy containerPort: 8082 volumeMounts: - name: data mountPath: /var/lib/redpanda/data resources: requests: memory: 512Mi cpu: 100m limits: memory: 2Gi cpu: "1" readinessProbe: exec: command: ["rpk", "cluster", "info", "--brokers=localhost:9092"] initialDelaySeconds: 20 periodSeconds: 10 volumes: - name: data persistentVolumeClaim: claimName: redpanda-data --- # Internal ClusterIP — for in-cluster services apiVersion: v1 kind: Service metadata: name: redpanda namespace: redpanda spec: selector: app: redpanda ports: - name: kafka port: 9092 targetPort: 9092 - name: admin port: 9644 targetPort: 9644 - name: proxy port: 8082 targetPort: 8082 type: ClusterIP --- # NodePort — external access via Tailscale (100.64.0.1:30093/30094) apiVersion: v1 kind: Service metadata: name: redpanda-external namespace: redpanda spec: selector: app: redpanda ports: - name: kafka-external port: 9093 targetPort: 9093 nodePort: 30094 type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: redpanda-console namespace: redpanda labels: app: redpanda-console spec: replicas: 0 selector: matchLabels: app: redpanda-console template: metadata: labels: app: redpanda-console spec: containers: - name: console image: docker.redpanda.com/redpandadata/console:latest ports: - containerPort: 8080 env: - name: KAFKA_BROKERS value: redpanda.redpanda.svc.cluster.local:9092 resources: requests: memory: 64Mi cpu: 50m limits: memory: 128Mi cpu: 200m --- apiVersion: v1 kind: Service metadata: name: redpanda-console namespace: redpanda spec: selector: app: redpanda-console ports: - port: 8080 targetPort: 8080 type: ClusterIP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: redpanda-console namespace: redpanda annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure cert-manager.io/cluster-issuer: letsencrypt-prod spec: ingressClassName: traefik tls: - hosts: - redpanda.neuralplatform.ai secretName: redpanda-console-tls rules: - host: redpanda.neuralplatform.ai http: paths: - path: / pathType: Prefix backend: service: name: redpanda-console port: number: 8080