yaml文件
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: kafkaserver
namespace: kafkans
labels:
app: kafkaserver
annotations:
field.cattle.io/publicEndpoints: >-
[{"port":30004,"protocol":"TCP","serviceName":"kafkans:kafkaserver","allNodes":true},{"port":30003,"protocol":"TCP","serviceName":"kafkans:kafkaserver","allNodes":true}]
kubesphere.io/creator: admin
spec:
replicas: 1
selector:
matchLabels:
app: kafkaserver
template:
metadata:
creationTimestamp: null
labels:
app: kafkaserver
annotations:
logging.kubesphere.io/logsidecar-config: '{}'
spec:
volumes:
- name: volume-ohoeq0
persistentVolumeClaim:
claimName: kafka-data
containers:
- name: container-gh6mnf
image: 'xxxx/kafka:4.0.0'
ports:
- name: tcp-9092
containerPort: 9092
protocol: TCP
env:
- name: KAFKA_CLUSTER_ID
value: VOXKSd60Tu6i-xzyREPV2Q
- name: KAFKA_KRAFT_ENABLED
value: 'true'
- name: KAFKA_CFG_PROCESS_ROLES
value: 'controller,broker'
- name: KAFKA_CFG_NODE_ID
value: '1'
- name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS
value: '1@127.0.0.1:9093'
- name: KAFKA_CFG_LISTENERS
value: 'PLAINTEXT://:9092,CONTROLLER://:9093'
- name: KAFKA_CFG_ADVERTISED_LISTENERS
value: 'PLAINTEXT://外网地址:30684'
- name: KAFKA_CFG_INTER_BROKER_LISTENER_NAME
value: PLAINTEXT
- name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES
value: CONTROLLER
- name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP
value: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT'
- name: ALLOW_PLAINTEXT_LISTENER
value: 'yes'
- name: KAFKA_CFG_LOG_DIRS
value: /kafka/data
resources: {}
volumeMounts:
- name: volume-ohoeq0
mountPath: /kafka/data
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: default
serviceAccount: default
securityContext: {}
schedulerName: default-scheduler
serviceName: kafkaserver-123
podManagementPolicy: OrderedReady
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 0
revisionHistoryLimit: 10
下列关于Kafka的配置:
KAFKA_CFG_INTER_BROKER_LISTENER_NAMEKafka的Broker地址前缀名称,固定为PLAINTEXT即可KAFKA_CFG_CONTROLLER_LISTENER_NAMESKafka的Controller地址前缀名称,固定为CONTROLLER即可KAFKA_CFG_CLUSTER_ID集群ID,可以自定义任何字符串作为集群ID,同一个集群中所有节点的集群ID必须配置为一样KAFKA_CFG_NODE_ID节点ID,用于标识每个集群中的节点,需要是不小于1的整数,同一个集群中的节点ID不可重复KAFKA_CFG_PROCESS_ROLES节点类型,broker,controller表示该节点是混合节点,通常单机部署时需要配置为混合节点KAFKA_CFG_CONTROLLER_QUORUM_VOTERS投票节点列表,通常配置为集群中所有的Controller节点,格式为节点id@节点外网地址:节点Controller端口,多个节点使用逗号,隔开,由于是混合节点,因此配置自己就行了KAFKA_CFG_LISTENERS表示Kafka要监听哪些端口,PLAINTEXT://:9092,CONTROLLER://:9093表示本节点作为混合节点,监听本机所有可用网卡的9092和9093端口,其中9092作为客户端通信端口,9093作为控制器端口KAFKA_CFG_ADVERTISED_LISTENERS配置Kafka的外网地址,需要是PLAINTEXT://外网地址:端口的形式,当客户端连接Kafka服务端时,Kafka会将这个外网地址广播给客户端,然后客户端再通过这个外网地址连接,除此之外集群之间交换数据时也是通过这个配置项得到集群中每个节点的地址的,这样集群中节点才能进行交互
参考链接:https://juejin.cn/post/7380421216019365897
1922

被折叠的 条评论
为什么被折叠?



