#创建实例
您可以创建 Kafka 实例,构建高吞吐、低延迟的实时数据管道,以支持流式数据处理、服务解耦等场景下业务系统的多样化需求。
#目录
#创建 Kafka 实例
#操作步骤
CLI
Web Console
通过 CLI 创建 Kafka 实例:
cat << EOF | kubectl -n default create -f -
apiVersion: middleware.alauda.io/v1
kind: RdsKafka
metadata:
name: my-cluster
spec:
entityOperator:
topicOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
userOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
tlsSidecar:
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 200m
memory: 128Mi
version: 3.8
replicas: 3
config:
auto.create.topics.enable: "false"
auto.leader.rebalance.enable: "true"
background.threads: "10"
compression.type: producer
default.replication.factor: "3"
delete.topic.enable: "true"
log.retention.hours: "168"
log.roll.hours: "168"
log.segment.bytes: "1073741824"
message.max.bytes: "1048588"
min.insync.replicas: "1"
num.io.threads: "8"
num.network.threads: "3"
num.recovery.threads.per.data.dir: "1"
num.replica.fetchers: "1"
unclean.leader.election.enable: "false"
resources:
limits:
cpu: 2
memory: 4Gi
requests:
cpu: 2
memory: 4Gi
storage:
size: 1Gi
# Replace with available storage class
class: local-path
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
zookeeper:
# Currently the same as Kafka broker
replicas: 3
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
# Storage maintained the same as Kafka broker
storage:
size: 1Gi
# Replace with available storage class
class: local-path
deleteClaim: false
EOF-
点击左侧导航栏的 Kafka。
-
点击 Namespace Name。
-
点击 创建 Kafka 实例。
-
按照以下说明完成相关配置。
配置项 配置内容 说明 参数配置 参数模板 您可以选择系统参数模板或自定义参数模板。自定义参数模板请参考 参数模板。 Kafka 节点 Broker 节点数 为保证 Broker 的高可用性,每个 Broker 会调度到集群中不同的节点上。 存储类 如果下拉列表中无可用存储类,请联系平台管理员添加。 访问方式 认证方式 为保证数据传输安全,建议开启加密认证。例如:监听方式为 TLS,认证方式为 SCRAM - SHA - 512。 指定主机端口 使用 NodePort 访问集群并开启指定主机端口时,可指定服务端口号。
注意:更新实例时端口不可互换,如需互换,可先更新为其他未占用端口,再重新指定。调度配置 节点标签 通过标签过滤当前集群可用节点,Pod 会调度到可用节点上。
注意:实例创建后不允许修改该配置。Pod 容忍度 若可用节点存在污点,只有设置了容忍度的 Pod 才能容忍这些污点,可能调度到匹配 Pod 容忍度和节点污点的节点上。匹配规则如下。 - Equal:当 Pod 容忍度的 key、value、effect 完全匹配节点污点设置时,Pod 容忍该节点污点。
- Exists:当 Pod 容忍度的 key、effect 匹配节点污点时,Pod 容忍该节点污点。
说明:effect 决定不容忍节点污点的 Pod 是否会被分配到带有该污点的节点。例如,NoExecute 表示只有容忍该污点的 Pod(包括本 Kafka 实例的 Pod)可以调度,且会驱逐已运行但不容忍该污点的 Pod(其他实例的 Pod)。更多匹配规则请参考 Kubernetes 官方文档。 -
点击 创建。
当实例状态变为 Running,表示实例创建成功。
创建实例后,您可以使用以下命令查看实例状态:
$ kubectl get rdskafka -n <namespace> -o=custom-columns=NAME:.metadata.name,VERSION:.spec.version,STATUS:.status.phase,MESSAGE:.status.reason,CreationTimestamp:.metadata.creationTimestamp
NAME VERSION STATUS MESSAGE CreationTimestamp
my-cluster 3.8 Active <none> 2025-03-06T08:46:57Z
test38 3.8 Failed Pod is unschedulable or is not starting 2025-03-06T08:46:36Z输出表格字段含义如下:
| 字段 | 说明 |
|---|---|
| NAME | 实例名称 |
| VERSION | 当前仅支持以下 4 个版本:2.5.0、2.7.0、2.8.2、3.8 |
| STATUS | 实例当前状态,可能有以下状态:
|
| MESSAGE | 实例当前状态的原因 |
| CreationTimestamp | 实例创建的时间戳 |
#创建单节点 Kafka 实例
重要提示
建议创建实例时 Broker 节点数设置为 3。如果 Broker 节点数小于推荐值 3,则需要在创建时修改部分参数。
#操作步骤
CLI
Web Console
通过 CLI 创建单节点 Kafka 实例:
cat << EOF | kubectl -n default create -f -
apiVersion: middleware.alauda.io/v1
kind: RdsKafka
metadata:
name: my-cluster
spec:
entityOperator:
topicOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
userOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
tlsSidecar:
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 200m
memory: 128Mi
version: 3.8
replicas: 1
config:
auto.create.topics.enable: "false"
auto.leader.rebalance.enable: "true"
background.threads: "10"
compression.type: producer
delete.topic.enable: "true"
log.retention.hours: "168"
log.roll.hours: "168"
log.segment.bytes: "1073741824"
message.max.bytes: "1048588"
min.insync.replicas: "1"
num.io.threads: "8"
num.network.threads: "3"
num.recovery.threads.per.data.dir: "1"
num.replica.fetchers: "1"
unclean.leader.election.enable: "false"
## 确保以下参数配置正确
default.replication.factor: "1"
offsets.topic.replication.factor: 1
transaction.state.log.replication.factor: 1
transaction.state.log.min.isr: 1
resources:
limits:
cpu: 2
memory: 4Gi
requests:
cpu: 2
memory: 4Gi
storage:
size: 1Gi
# Replace with available storage class
class: local-path
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
zookeeper:
# Currently the same as Kafka broker
replicas: 1
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
# Storage maintained the same as Kafka broker
storage:
size: 1Gi
# Replace with available storage class
class: local-path
deleteClaim: false
EOF-
点击左侧导航栏的 Kafka。
-
点击 Namespace Name。
-
点击 创建 Kafka 实例。
-
点击 展开实例参数,将以下参数值设置为 1:
参数 配置值 说明 default.replication.factor1 自动创建主题的副本因子 offsets.topic.replication.factor1 offsets 主题的副本因子 transaction.state.log.replication.factor1 事务状态日志的副本因子 transaction.state.log.min.isr1 事务状态日志的最小同步副本数 -
完成其他配置。
-
切换到 YAML 编辑页面,将
spec.replicas和spec.zookeeper.replicas的值修改为 1。 -
点击 创建。
当实例状态变为 Running,表示实例创建成功。