Рекомендую попробовать Стримзи Кафка Оператор . Используя его, вы можете определить кластер Kafka так же, как и другой объект Kubernetes - запись файла yaml. Более того, пользователи, темы и кластер Kafka Connect - это просто объекты k8s. Некоторые (не все!) Функции оператора Strimzi Kafka:
- Безопасная связь между брокерами, а также между брокерами и зоопарком с помощью TLS
- Возможность выставить кластер вне кластера k8s
- Развертываемый как рулевой график (он сильно упрощает)
- Обновление обновлений при изменении конфигурации кластера
- Плавное масштабирование
- Готов к мониторингу кластера, используя Прометей и Графана .
Стоит упомянуть отличную документацию .
Создать кластер Kafka так же просто, как применить манифест Kubernetes, например:
apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 2.2.0
replicas: 3
listeners:
plain: {}
tls: {}
config:
offsets.topic.replication.factor: 3
transaction.state.log.replication.factor: 3
transaction.state.log.min.isr: 2
log.message.format.version: "2.2"
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
size: 100Gi
deleteClaim: false
zookeeper:
replicas: 3
storage:
type: persistent-claim
size: 100Gi
deleteClaim: false
entityOperator:
topicOperator: {}
userOperator: {}