I found this guide useful for setup.
Clone: https://github.com/Yolean/kubernetes-kafka
Follow these commands from within that repo root directory to start (and later stop) a single ZK, single Broker Cluster with the following bootstrap:
bootstrap.kafka.svc.cluster.local:9092
# starting up
# create pods (1 zk, 1 broker)
$ kubectl create namespace kafka && kubectl apply -k variants/scale-1-ephemeral
namespace/kafka created
role.rbac.authorization.k8s.io/pod-labler created
clusterrole.rbac.authorization.k8s.io/node-reader unchanged
rolebinding.rbac.authorization.k8s.io/kafka-pod-labler created
clusterrolebinding.rbac.authorization.k8s.io/kafka-node-reader unchanged
configmap/broker-config created
configmap/zookeeper-config created
service/bootstrap created
service/kafka created
service/pzoo created
service/zookeeper created
service/zoo created
statefulset.apps/kafka created
statefulset.apps/pzoo created
statefulset.apps/zoo created
# confirm running pods
$ kubectl get all -n kafka -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/kafka-0 1/1 Running 0 38s 10.1.0.82 docker-desktop <none> <none>
pod/zoo-0 1/1 Running 0 38s 10.1.0.83 docker-desktop <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/bootstrap ClusterIP 10.110.168.53 <none> 9092/TCP 39s app=kafka
service/kafka ClusterIP None <none> 9092/TCP 39s app=kafka
service/pzoo ClusterIP None <none> 2888/TCP,3888/TCP 39s app=zookeeper,storage=persistent
service/zoo ClusterIP None <none> 2888/TCP,3888/TCP 38s app=zookeeper,storage=persistent-regional
service/zookeeper ClusterIP 10.107.155.37 <none> 2181/TCP 38s app=zookeeper
NAME READY AGE CONTAINERS IMAGES
statefulset.apps/kafka 1/1 38s broker solsson/kafka:2.5.1-kafka-server-start@sha256:e4d34530e500eb9724e7778595f4cb244df228336090bb7ed5f7dd7433d4d41d
statefulset.apps/pzoo 0/0 38s zookeeper solsson/kafka:native-zookeeper-server-start@sha256:ba3a0632240b8906a3b5bb6441e98ad9d9de73cb716b156ca68f1b435c819e8b
statefulset.apps/zoo 1/1 38s zookeeper solsson/kafka:native-zookeeper-server-start@sha256:ba3a0632240b8906a3b5bb6441e98ad9d9de73cb716b156ca68f1b435c819e8b
## single broker bootstrap is now available at: bootstrap.kafka.svc.cluster.local:9092 (see helm-install.sh)
## shutting down
# delete pods
$ kubectl delete --all pods --namespace=kafka
pod "kafka-0" deleted
pod "zoo-0" deleted
# delete ns
$ kubectl delete ns kafka
namespace "kafka" deleted
# confirm
$ kubectl get all -n kafka -o wide
No resources found in kafka namespace.
Subscribe to the AWS kPow LM Product, follow the directions to create a secret/token, then:
./helm install kpow-1-0-23 \
--namespace operatr-io ./awsmp-chart/* \
--set serviceAccount.create=false \
--set serviceAccount.name=kpow \
--set aws.licenseConfigSecretName=awsmp-license-token-secret \
--set env.REPLICATION_FACTOR="'1'" \
--set env.BOOTSTRAP="bootstrap.kafka.svc.cluster.local:9092" \
NAME: kpow-1-0-22
LAST DEPLOYED: Wed Nov 24 16:19:02 2021
NAMESPACE: operatr-io
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace operatr-io -l "app.kubernetes.io/name=kpow,app.kubernetes.io/instance=kpow-1-0-22" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:3000 to use your application"
kubectl --namespace operatr-io port-forward $POD_NAME 3000:3000
## ^ run those export / echo / kubectl commands to access kPow on localhost:3000
# view logs
$ kubectl logs --namespace operatr-io $POD_NAME
# delete kpow
$ helm delete --namespace operatr-io kpow-1-0-22
release "kpow-1-0-22" uninstalled