Этот проект полностью совместим с KRaft, не зависит от ZooKeeper, минимальный Kafka Кластер запускается только один Pod Вот и все. Также можно использовать отдельно Docker Начните облегчать локальную разработку и отладку. Подробную информацию см. Docker запускать Kafka
helm repo add kafka-repo https://helm-charts.itboon.top/kafka
helm repo update kafka-repo
helm upgrade --install kafka \
--namespace kafka-demo \
--create-namespace \
--set broker.combinedMode.enabled="true" \
--set broker.persistence.enabled="false" \
kafka-repo/kafka
helm upgrade --install kafka \
--namespace kafka-demo \
--create-namespace \
--set broker.persistence.size="20Gi" \
kafka-repo/kafka
Постоянное хранилище включено по умолчанию.
helm upgrade --install kafka \
--namespace kafka-demo \
--create-namespace \
--set controller.replicaCount="3" \
--set broker.replicaCount="3" \
--set broker.heapOpts="-Xms4096m -Xmx4096m" \
--set broker.resources.requests.memory="8Gi" \
--set broker.resources.limits.memory="16Gi" \
kafka-repo/kafka
Более values Пожалуйста, обратитесь к examples/values-production.yml
включать Kubernetes Доступ за пределами кластера:
helm upgrade --install kafka \
--namespace kafka-demo \
--create-namespace \
--set broker.external.enabled="true" \
--set broker.external.service.type="LoadBalancer" \
--set broker.external.domainSuffix="kafka.example.com" \
kafka-repo/kafka
После успешного развертывания завершите настройку разрешения доменных имен.
Key | Type | Default | Description |
---|---|---|---|
broker.combinedMode.enabled | bool |
| Whether to enable the combined mode |
broker:
combinedMode:
enabled: true
replicaCount: 1
heapOpts: "-Xms1024m -Xmx1024m"
persistence:
enabled: true
size: 20Gi
In order to connect to the Kafka server outside the cluster, each Broker must be exposed and advertised.listeners
must be correctly configured.
There are two ways to expose, NodePort
and LoadBalancer
, each broker node needs a NodePort
or LoadBalancer
.
Key | Type | значение по умолчанию | описывать |
---|---|---|---|
broker.external.enabled | bool |
| ливключать Доступ за пределами кластера |
broker.external.service.type | string |
|
|
broker.external.service.annotations | object |
| External serivce annotations |
broker.external.nodePorts | list |
| В режиме NodePort укажите хотя бы один номер порта. Если количество портов меньше количества брокеров, оно автоматически увеличится. |
broker.external.domainSuffix | string |
| If you use |
## NodePort example
broker:
replicaCount: 3
external:
enabled: true
service:
type: "NodePort"
annotations: {}
nodePorts:
- 31050
- 31051
- 31052
## LoadBalancer example
broker:
replicaCount: 3
external:
enabled: true
service:
type: "LoadBalancer"
annotations: {}
domainSuffix: "kafka.example.com"
version: "3"
volumes:
kafka-data: {}
services:
kafka:
image: kafkace/kafka:v3.5
# restart: always
ports:
- "29092:29092"
volumes:
- kafka-data:/opt/kafka/data
environment:
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
- KAFKA_BROKER_EXTERNAL_HOST=kafka.example.com ## Имя хоста, доступное внешнему миру, может быть доменным именем или IP-адресом.
- KAFKA_BROKER_EXTERNAL_PORT=29092
## kafka web управлять (необязательный)
kafka-ui:
image: provectuslabs/kafka-ui:v0.7.1
# restart: always
ports:
- "18080:8080"
environment:
- KAFKA_CLUSTERS_0_NAME=demo-kafka-server
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
### внутренняя сеть
## broker Внутренний порт по умолчанию 9092
## bootstrap-server: kafka:9092
### внешняя сеть
## broker Внешний порт по умолчанию 29092
## bootstrap-server: ${KAFKA_BROKER_EXTERNAL_HOST}:29092
переменная | значение по умолчанию | описывать |
---|---|---|
| случайно сгенерированный | Cluster ID |
|
| broker Номер порта, если настроен |
|
| controller Номер порта, если настроен |
| null | Имя хоста, доступное внешнему миру, может быть именем домена или IP-адресом, если оно настроено. |
|
| Номер порта, доступный извне, не может совпадать с номером внутреннего порта, если он настроен. |
|
| Kafka Java Heap size. Например: |
https://github.com/itboon/kafka-docker
Все с KAFKA_CFG_
Окружения, начинающиеся с переменная, будут сопоставлены с соответствующими им. Apache Kafka Элементы конфигурации.
Например KAFKA_CFG_LISTENERS
Соответствующие параметры конфигурации listeners
,KAFKA_CFG_ADVERTISED_LISTENERS
Соответствующие параметры конфигурации advertised.listeners
Variable examples:
переменная | Элементы конфигурации |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
log.dir
иlog.dirs
Уже заблокирован и не может быть перезаписан с использованием переменной среды.