81 lines
2.2 KiB
YAML
81 lines
2.2 KiB
YAML
# Strimzi Kafka 集群示例
|
|
# 前提:已安装 Strimzi Operator,且 Operator 具备对本命名空间的 watch 权限。
|
|
apiVersion: kafka.strimzi.io/v1beta2
|
|
kind: Kafka
|
|
metadata:
|
|
name: juwan-kafka
|
|
namespace: juwan # 示例业务命名空间
|
|
spec:
|
|
kafka:
|
|
version: 3.9.0 # Kafka Broker 版本
|
|
replicas: 1 # 开发环境可用;生产环境建议 >= 3
|
|
listeners:
|
|
- name: plain
|
|
port: 9092
|
|
type: internal # 仅集群内部访问
|
|
tls: false # 明文 listener,内网调试方便
|
|
- name: tls
|
|
port: 9093
|
|
type: internal
|
|
tls: true # TLS listener,推荐业务接入使用
|
|
config:
|
|
# 单副本容错参数(仅适合开发环境)
|
|
offsets.topic.replication.factor: 1
|
|
transaction.state.log.replication.factor: 1
|
|
transaction.state.log.min.isr: 1
|
|
default.replication.factor: 1
|
|
min.insync.replicas: 1
|
|
storage:
|
|
type: ephemeral # 临时存储,Pod 重建会丢数据;生产建议 persistent-claim
|
|
zookeeper:
|
|
replicas: 1 # 开发环境可用;生产环境建议 >= 3
|
|
storage:
|
|
type: ephemeral
|
|
# 开启 Topic/User Operator,便于声明式管理 Topic 和账号
|
|
entityOperator:
|
|
topicOperator: {}
|
|
userOperator: {}
|
|
---
|
|
# 业务 Topic 示例
|
|
apiVersion: kafka.strimzi.io/v1beta2
|
|
kind: KafkaTopic
|
|
metadata:
|
|
name: user-events # 用户事件主题
|
|
namespace: juwan
|
|
labels:
|
|
strimzi.io/cluster: juwan-kafka # 关联 Kafka 集群名
|
|
spec:
|
|
partitions: 3 # 分区数,决定并行消费能力
|
|
replicas: 1 # 副本数,开发环境示例
|
|
config:
|
|
retention.ms: 604800000 # 7 天
|
|
segment.bytes: 1073741824 # 1GiB
|
|
---
|
|
# Kafka 用户与 ACL 示例
|
|
apiVersion: kafka.strimzi.io/v1beta2
|
|
kind: KafkaUser
|
|
metadata:
|
|
name: app-producer # 应用侧生产者账号
|
|
namespace: juwan
|
|
labels:
|
|
strimzi.io/cluster: juwan-kafka
|
|
spec:
|
|
authentication:
|
|
type: tls # 生成 TLS 证书凭据 Secret
|
|
authorization:
|
|
type: simple
|
|
acls:
|
|
- resource:
|
|
type: topic
|
|
name: user-events
|
|
patternType: literal
|
|
operations:
|
|
- Read
|
|
- Write
|
|
- resource:
|
|
type: group
|
|
name: app-consumer-group
|
|
patternType: literal
|
|
operations:
|
|
- Read
|