Herramientas
Vamos a hablar de herramientas que creo son necesarias para el desarrollo en torno a Kafka.
Schema Registry
Vamos a utilizar el schema registry de Confluent en este estudio, pues es el más utilizado. En el futuro haremos un estudio sobre Apicur.io.
Podemos ir por dos caminos:
- Utilizar el Confluent Schema Registry ofrecido por Bitnami.
- Utilizar el oficial ofrecido por la propia Confluent.
- En este caso es necesario instalar el operator que hace el proceso de instalación a través de custom resource.
La ventaja de instalar a través de CFK es que estamos extendiendo la API de kubernetes para futuras automatizaciones.
helm repo add confluentinc https://packages.confluent.io/helm
helm repo update
helm install confluent-operator confluentinc/confluent-for-kubernetes --namespace confluent --create-namespace
No hay muchas cosas que cambiar en el values.yaml. En realidad vamos a instalar algunos custom resources y solo utilizaremos algunos para crear el schema registry y en el futuro algunos schemas.
Podemos aprovechar para instalar también el ksqlDB que también es ofrecido a través de un custom resource.
Para instalar el schema registry entonces creamos el siguiente manifiesto.
apiVersion: platform.confluent.io/v1beta1
kind: SchemaRegistry
metadata:
name: schemaregistry
namespace: confluent
spec:
replicas: 1 # Ajusta para un cluster mayor
image:
application: confluentinc/cp-schema-registry:7.5.0
init: confluentinc/confluent-init-container:2.7.0
dependencies:
kafka:
bootstrapEndpoint: kafka-cluster-kafka-bootstrap.kafka:9092
apiVersion: platform.confluent.io/v1beta1
kind: KsqlDB
metadata:
name: ksqldb
namespace: confluent
spec:
replicas: 1 # Ajusta para un cluster mayor
image:
application: confluentinc/cp-ksqldb-server:7.5.0
init: confluentinc/confluent-init-container:2.7.0
dataVolumeCapacity: 10Gi
dependencies:
kafka:
bootstrapEndpoint: kafka-cluster-kafka-bootstrap.kafka:9092
schemaRegistry:
url: http://schemaregistry.confluent:8081