背景
实际使用中,部署好kafka集群后,需要管理集群,那么一个好的web控制台就显得尤为重要了。
直接上部署代码,亲测可用
开源链接
https://github.com/provectus/kafka-ui
效果预览
部署
配置文件
kafka-ui-cm
注意,如果是想管理多个 kafka 集群,则需要配置多个集群信息,并在配置文件中不同的索引号以示区分。例如 _0,_1,_2,如下图所示
---
apiVersion: v1
data:ANNOTATION: 'DYNAMIC_CONFIG_ENABLED: true'AUTH_TYPE: LOGIN_FORMKAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${实例0的kafka地址}KAFKA_CLUSTERS_0_NAME: ${kafka-0的名字}KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: SSLKAFKA_CLUSTERS_1_BOOTSTRAPSERVERS: ${实例1的kafka地址}KAFKA_CLUSTERS_1_NAME: ${kafka-1的名字}KAFKA_CLUSTERS_1_PROPERTIES_SECURITY_PROTOCOL: SSLSPRING_SECURITY_USER_NAME: adminSPRING_SECURITY_USER_PASSWORD: ${设置管理员密码}TZ: UTC
kind: ConfigMap
metadata:labels:app: kafka-ui-cmname: kafka-ui-cmnamespace: xxx
deployment 和 service
kafka-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:annotations: {}labels:k8s.kuboard.cn/name: kafka-uiname: kafka-uinamespace: xxx
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:app: kafka-uistrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:annotations:kubectl.kubernetes.io/restartedAt: '2023-11-28T16:21:38+08:00'creationTimestamp: nulllabels:app: kafka-uispec:containers:- envFrom:- configMapRef:name: kafka-ui-cmimage: 'provectuslabs/kafka-ui:latest'imagePullPolicy: Alwaysname: kafka-uiresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30---
apiVersion: v1
kind: Service
metadata:annotations: {}labels:app: kafka-uiname: kafka-uinamespace: xxx
spec:externalTrafficPolicy: ClusterinternalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- nodePort: 32204port: 8080protocol: TCPtargetPort: 8080selector:app: kafka-uisessionAffinity: Nonetype: NodePort