After development using Docker and docker compose I’ m trying a first test of a java application on local kubernetes.
For deployment I use this (example found online) and everything works fine
apiVersion: apps/v1
kind: Deployment
metadata:
name: zookeeper
labels:
app: zookeeper
spec:
replicas: 1
selector:
matchLabels:
app: zookeeper
template:
metadata:
labels:
app: zookeeper
spec:
hostname: zookeeper
containers:
- name: zookeeper
image: confluentinc/cp-zookeeper:latest
ports:
- containerPort: 2181
env:
- name: ZOOKEEPER_CLIENT_PORT
value: "2181"
- name: ZOOKEEPER_TICK_TIME
value: "2000"
---
apiVersion: v1
kind: Service
metadata:
name: zookeeper
labels:
app: zookeeper
spec:
type: ClusterIP
ports:
- port: 2181
name: http
targetPort: 2181
protocol: TCP
selector:
app: zookeeper
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: broker
labels:
app: broker
spec:
replicas: 1
selector:
matchLabels:
app: broker
template:
metadata:
labels:
app: broker
spec:
hostname: broker
containers:
- name: broker
image: confluentinc/cp-kafka:latest
ports:
- containerPort: 9092
- containerPort: 30018
env:
- name: KAFKA_BROKER_ID
value: "1"
- name: KAFKA_ZOOKEEPER_CONNECT
value: "zookeeper:2181"
- name: KAFKA_ADVERTISED_LISTENERS
value: "PLAINTEXT://broker:9092,PLAINTEXT_HOST://localhost:30018"
- name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
value: "PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT"
- name: KAFKA_INTER_BROKER_LISTENER_NAME
value: "PLAINTEXT"
- name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
value: "1"
- name: KAFKA_TRANSACTION_STATE_LOG_MIN_ISR
value: "1"
- name: KAFKA_TRANSACTION_STATE_TOPIC_REPLICATION_FACTOR
value: "1"
- name: KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR
value: "1"
---
apiVersion: v1
kind: Service
metadata:
name: broker-np
labels:
app: broker-np
spec:
type: NodePort
ports:
- port: 30018
name: port1
targetPort: 30018
protocol: TCP
nodePort: 30018
selector:
app: broker
---
apiVersion: v1
kind: Service
metadata:
name: broker
labels:
app: broker
spec:
ports:
- port: 9092
name: port2
targetPort: 9092
protocol: TCP
selector:
app: broker
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kafka-schema-registry
labels:
app: kafka-schema-registry
spec:
selector:
matchLabels:
app: kafka-schema-registry
template:
metadata:
labels:
app: kafka-schema-registry
spec:
containers:
- name: kafka-schema-registry
image: confluentinc/cp-schema-registry:latest
ports:
- containerPort: 8081
env:
- name: SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS
value: 'broker:9092'
- name: SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL
value: "PLAINTEXT"
- name: SCHEMA_REGISTRY_LISTENERS
value: "http://0.0.0.0:8081,http://0.0.0.0:30092"
- name: SCHEMA_REGISTRY_HOST_NAME
valueFrom:
fieldRef:
fieldPath: status.podIP
---
apiVersion: v1
kind: Service
metadata:
name: kafka-schema-registry
labels:
app: kafka-schema-registry
spec:
ports:
- port: 8081
name: '8081'
targetPort: 8081
protocol: TCP
selector:
app: kafka-schema-registry
---
apiVersion: v1
kind: Service
metadata:
name: schema-registry-np
labels:
app: schema-registry-np
spec:
type: NodePort
ports:
- port: 30092
name: port1
targetPort: 30092
protocol: TCP
nodePort: 30092
selector:
app: kafka-schema-registry
I would like to get rid of zookeeper and deploy kafka in kraft mode (as I did in docker compose file). I couldn’t find anything and I couldn’t figure out how to modify the deployment file. Who knows how to?
Many thanks
1