#创建实例
您可以创建 Kafka 实例,构建高吞吐、低延迟的实时数据管道,以支持流式数据处理、服务解耦等场景下业务系统的多样化需求。
#创建 Kafka 实例
#操作步骤
CLI
Web 控制台
通过 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: 4.2
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: sc-topolvm
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
mode: KRaft
controller:
replicas: 3
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
roles:
- controller
storage:
size: 1Gi
class: sc-topolvm
deleteClaim: false
EOF-
单击左侧导航栏中的 Kafka。
-
单击 命名空间名称。
-
单击 创建 Kafka 实例。
-
按照以下说明完成相关配置。
配置 配置项 描述 参数配置 参数模板 您可以选择系统参数模板或自定义参数模板。关于自定义参数模板,请参见 参数模板。 Kafka 节点 Broker 节点数 为确保 broker 的高可用性,每个 broker 都会调度到集群中的不同节点上。 Storage Class 如果下拉列表中没有可用的 Storage Class,请联系平台管理员进行添加。 访问方式 认证方式 为确保数据传输安全,建议启用加密认证。例如:监听方式为 TLS,认证方式为 SCRAM - SHA - 512。 指定主机端口 当您使用 NodePort 访问集群并开放指定主机端口时,可以指定服务端口号。
注意:更新实例时,端口不可互换。如果需要交换端口,可以先更新为其他未占用端口,再重新指定。调度配置 节点标签 根据标签筛选当前集群中的可用节点。Pod 将调度到可用节点上。
注意:实例创建后,不允许再修改此配置。Pod 容忍度 如果可用节点存在污点,则只有设置了容忍度的 Pod 才能容忍这些污点,并且可能会调度到同时匹配 Pod 容忍度和节点污点的节点上。匹配规则如下。 - Equal:当 Pod 容忍度的 key、value、effect 与节点污点中设置的值完全匹配时,Pod 将容忍该节点污点。
- Exists:当 Pod 容忍度的 key、effect 与节点污点中的值匹配时,Pod 将容忍该节点污点。
说明:effect 用于确定不容忍节点污点的 Pod 是否会被分配到具有这些污点的节点上。例如,effect 为 NoExecute 表示只有容忍污点的 pod(包括此 Kafka 实例中的 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 4.2 Active <none> 2025-03-06T08:46:57Z
test42 4.2 Failed Pod is unschedulable or is not starting 2025-03-06T08:46:36Z输出表字段含义如下:
| 字段 | 描述 |
|---|---|
| NAME | 实例名称 |
| VERSION | 当前仅支持版本:4.2 |
| STATUS | 实例当前状态,可能包含以下状态:
|
| MESSAGE | 实例当前状态的原因 |
| CreationTimestamp | 实例创建时间戳 |
#创建单节点 Kafka 实例
重要提示
建议在创建实例时将 Broker 节点数设置为 3。如果您的 Broker 节点数小于建议值 3,则需要在创建过程中修改某些参数。
#操作步骤
CLI
Web 控制台
通过 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: 4.2
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"
## Ensure that the following parameter configurations are correct
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
mode: KRaft
controller:
roles:
- controller
# 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。
-
单击 命名空间名称。
-
单击 创建 Kafka 实例。
-
单击 展开实例参数,并将以下参数值设置为 1:
参数 配置值 描述 default.replication.factor1 自动创建主题的副本因子 offsets.topic.replication.factor1 offsets 主题的副本因子 transaction.state.log.replication.factor1 事务状态日志的副本因子 transaction.state.log.min.isr1 事务状态日志的最小同步副本数 -
完成其他配置。
-
切换到 YAML 编辑页面,并将
spec.replicas和spec.controller.replicas的值更改为 1。 -
单击 创建。
当实例状态变为 Running 时,表示实例已创建成功。