Acerca de las cookies de este sitio Nuestros sitios web necesitan algunas cookies para funcionar correctamente (necesarias). Además, se pueden utilizar otras cookies con su consentimiento para analizar el uso del sitio, para mejorar la experiencia del usuario y para publicidad. Para obtener más información, consulte sus opciones de. Al visitar nuestro sitio web, acepta que procesemos la información tal y como se describe en ladeclaración de privacidad de IBM. Para facilitar la navegación, sus preferencias de cookies se compartirán entre los dominios web de IBM que se muestran aquí.
Conexión de Event Streams a IBM Cloud Object Storage utilizando Kubernetes Service
Consigue que el tiempo de ejecución de Kafka Connect se ejecute en un clúster Kubernetes Service. A continuación, inicie el IBM Cloud® Object Storage Sink Connector para archivar datos de temas Kafka en Event Streams a una instancia del servicio IBM Cloud® Object Storage.
El conector consume lotes de mensajes de Kafka y sube los datos del mensaje como objetos a un grupo en el servicio Cloud Object Storage.
Paso 1. Instalar los requisitos previos
Asegúrese de que se hayan instalado el software y los servicios siguientes:
-
Una instancia de Event Streams: plan Estándar o Empresa. Es necesario crear credenciales.
-
Una instancia del servicio Cloud Object Storage con al menos un grupo.
-
Un clúster de IBM Cloud® Kubernetes Service. Puede suministrar uno gratuito para llevar a cabo pruebas.
También necesita acceso de CLI a su clúster. Para obtener más información, consulte Configuración de la CLI y la API.
-
Una versión reciente de kubectl.
Paso 2. Clonar los repositorios de kafka-connect
Clone los dos repositorios siguientes que contienen los archivos necesarios:
Paso 3. Cree la configuración de Kafka Connect
-
Debe configurar esta configuración sólo una vez. Event Streams la almacena para su uso futuro.
Desde el proyecto event-streams-samples, navega hasta el archivo
kafka-connect/IKS directory
, editar el archivoconnect-distributed.properties
, y reemplazar<BOOTSTRAP_SERVERS>
en un lugar y<APIKEY>
en tres lugares con sus credenciales de Event Streams.Proporcione
<BOOTSTRAP_SERVERS>
como una lista separada por comas. Si no son válidos, obtiene un error.Su
<APIKEY>
aparece en texto simple en su máquina, pero es secreto cuando se envía a IBM Cloud® Kubernetes Service.Kafka Connect puede conectar varios trabajadores por razones de fiabilidad y escalabilidad. Si su clúster de Kubernetes Service tiene más de un nodo y quiere varios trabajadores de Connect, edite el archivo
kafka-connect.yaml
y edite la entradareplicas: 1
. -
A continuación, ejecute los mandatos siguientes:
Ejecute el mandato siguiente para crear un secreto:
kubectl create secret generic connect-distributed-config --from-file=connect-distributed.properties
Ejecute el mandato siguiente para crear un mapa de configuración:
kubectl create configmap connect-log4j-config --from-file=connect-log4j.properties
Paso 4. Desplegar Kafka Connect
Aplique la configuración en el archivo kafka-connect.yaml
ejecutando el mandato siguiente:
kubectl apply -f ./kafka-connect.yaml
Paso 5. Validar que Kafka Connect se está ejecutando
Para validar que Kafka Connect se está ejecutando, el reenvío de puerto en el servicio kafkaconnect se realiza en el puerto 8083, como en el ejemplo siguiente:
kubectl port-forward service/kafkaconnect-service 8083
Mantenga abierto el terminal que ha utilizado para el reenvío de puertos y utilice otro terminal para los pasos siguientes.
La API REST de Connect está disponible en http://localhost:8083
. Si desea más información sobre la API, consulte
Interfaz REST deKafka Connect.
Por lo tanto, ahora tiene el tiempo de ejecución de Kafka Connect que se despliega y se ejecuta en Kubernetes Service. A continuación, configure e inicie el conector Object Storage.
Paso 6. Configurar el archivo JSON de cos-sink
Edite el archivo cos-sink.json
ubicado en kafka-connect-ibmcos-sink/config/
para que, como mínimo, las propiedades necesarias se completen con la información. Aunque las propiedades de configuración cos.object.deadline.seconds,
cos.interval.seconds y cos.object.records se enumeran como opcionales, debe establecer al menos una de estas propiedades en un valor no predeterminado.
Propiedades del archivo cos-sink.json
Sustituya los marcadores de posición del archivo cos-sink.json
por sus propios valores.
Propiedades de archivo | Descripción |
---|---|
cos.api.key | Obligatorio. Clave de API utilizada para conectarse a la instancia de servicio de Cloud Object Storage. |
cos.bucket.location | Obligatorio. Ubicación del grupo de servicio de Cloud Object Storage. Por ejemplo, para un grupo regional eu-gb o para un
grupo global eu . |
cos.bucket.name | Obligatorio. Nombre del grupo de servicios Cloud Object Storage en el que grabar los datos. |
cos.bucket.resiliency | Obligatorio. Resiliencia del grupo de Cloud Object Storage. Debe ser: cross-region, regional o single-site. |
cos.service.crn | Obligatorio. CRN para la instancia de servicio de Cloud Object Storage. Asegúrese de que especifica el CRN correcto: es el ID de instancia de recurso que termina con dos puntos, por ejemplo, crn:v1:staging:public:cloud-object-storage:global:a/8c226dc8c8bfb9bc3431515a16957954:b25fe12c-9cf5-4ee8-8285-2c7e6ae707f6:: . |
cos.endpoint.visibility | Opcional. Especifique public para conectarse al servicio de nube Object Storage a través de Internet público. Especifique privado para conectarse desde un conector que se ejecuta dentro de la red IBM Cloud, por ejemplo, desde un clúster de IBM Cloud Kubernetes Service. El valor predeterminado es Public. |
cos.object.deadline.seconds | Opcional. El número de segundos (medido como en un reloj de pared para la instancia de la tarea de conexión) entre la lectura del primer registro de Kafka y la grabación de todos los registros leídos hasta el momento en un objeto de Cloud Object Storage. Esta propiedad puede ser útil en situaciones que tienen largas pausas entre los registros de Kafka que se producen a un tema. Garantiza que los registros recibidos por este conector se escriban siempre en Object Storage dentro del tiempo especificado. |
cos.object.interval.seconds | Opcional. El número de segundos (medido por las indicaciones de fecha y hora en los registros de Kafka) entre la lectura del primer registro de Kafka y la grabación de todos los registros leídos hasta el momento en un objeto de Cloud Object Storage. |
cos.object.records | Opcional. El número máximo de registros de Kafka que se deben combinar en un objeto. |
Obtener credenciales de Object Storage que utilizan la consola de IBM Cloud
- Localice el servicio de Object Storage en el panel de control.
- Pulse el mosaico del servicio.
- Pulse Credenciales de servicio.
- Pulse Nueva credencial.
- Especifique los detalles de la nueva credencial, por ejemplo, un nombre y un rol y, a continuación, pulse Añadir. Aparece una nueva credencial en la lista de credenciales.
- Pulse esta credencial utilizando Ver credenciales para revelar los detalles en formato JSON.
Paso 7. Inicie el conector con su configuración
Ejecute el mandato siguiente para iniciar el conector Object Storage con la configuración que ha proporcionado en el paso anterior.
curl -X POST -H "Content-Type: application/json" http://localhost:8083/connectors --data "@./cos-sink.json"
Paso 8. Supervisar el conector
Puedes comprobar tu conector accediendo a la siguiente dirección.
http://localhost:8083/connectors/cos-sink/status
Si el estado del conector no es En ejecución, reinicie el conector.
Paso 9. Suprimir el conector
Puede utilizar el mandato siguiente para suprimir un conector.
curl -X DELETE
http://localhost:8083/connectors/cos-sink