1. 首页
  2. 技术知识

K8S部署Kafka界面管理工具(kafkamanager)方法详解

kafka-manager 是雅虎开源的apache-kafka管理工具,是用Scala编写的,可以在web页面进行kafka的相关操作。


一、制作kafkamanager的image镜像

下载kafka-manager-2.0.0.2.zip,在解压目录的conf下的APPlication.conf文件里,修改kafka-manager.zkhosts地址和cmake.zkhosts地址为:

zok-0.zk-hs.wiseco.svc.cluster.local:2181,zok-1.zk-hs.wiseco.svc.cluster.local:2181,zok-2.zk-hs.wiseco.svc.cluster.local:2181

[root@k8s-storage01 kafkamanager]# pwd

/home/k8s_deploy/fin/online/deploy/kafkamanager

[root@k8s-storage01 kafkamanager]# ll

total 59228

-rw-r–r– 1 root root      353 Jan 27 17:42 Dockerfile

-rw-r–r– 1 root root 60639694 Jan 27 17:48 kafka-manager-2.0.0.2.zip

[root@k8s-storage01 kafkamanager]# unzip kafka-manager-2.0.0.2.zip

[root@k8s-storage01 kafkamanager]# ll

total 59228

-rw-r–r– 1 root root      353 Jan 27 17:42 Dockerfile

drwxr-xr-x 6 root root     4096 Jan 27 18:09 kafka-manager-2.0.0.2

-rw-r–r– 1 root root 60639694 Jan 27 17:48 kafka-manager-2.0.0.2.zip

[root@k8s-storage01 kafkamanager]# cd kafka-manager-2.0.0.2/conf/

[root@k8s-storage01 conf]# vim application.conf

………..

………..

kafka-manager.zkhosts=”zok-0.zk-hs.wiseco.svc.cluster.local:2181,zok-1.zk-hs.wiseco.svc.cluster.local:2181,zok-2.zk-hs.wiseco.svc.cluster.local:2181″

………..

………..

basicAuthentication.enabled=true       #这里启用了用户密码登录,默认false不启用 (除了这里启用用户登录, 后面也可以启用ldap)

basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED}

………..

………..

basicAuthentication.username=”admin”

basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}

basicAuthentication.password=”AdMin@123″           #修改用户登录密码

basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}

………..

………..

重新打包

[root@k8s-storage01 conf]# cd ../../

[root@k8s-storage01 kafkamanager]# ll

total 59228

-rw-r–r– 1 root root      353 Jan 27 17:42 Dockerfile

drwxr-xr-x 6 root root     4096 Jan 27 18:09 kafka-manager-2.0.0.2

-rw-r–r– 1 root root 60639694 Jan 27 17:48 kafka-manager-2.0.0.2.zip

[root@k8s-storage01 kafkamanager]# rm -rf kafka-manager-2.0.0.2.zip

[root@k8s-storage01 kafkamanager]# tar -zvcf kafka-manager-2.0.0.2.tar.gz kafka-manager-2.0.0.2

[root@k8s-storage01 kafkamanager]# rm -rf kafka-manager-2.0.0.2

[root@k8s-storage01 kafkamanager]# ll

total 58000

-rw-r–r– 1 root root      353 Jan 27 17:42 Dockerfile

-rw-r–r– 1 root root 59387703 Jan 27 18:13 kafka-manager-2.0.0.2.tar.gz

制作Dockerfile镜像

[root@k8s-storage01 kafkamanager]# cat Dockerfile

FROM 192.168.10.10/wiseco/jdk1.8.0_192

RUN rm -f /etc/localtime \

&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

&& echo “Asia/Shanghai” > /etc/timezone

ENV LANG en_US.UTF-8

ADD kafka-manager-2.0.0.2.tar.gz /opt/

RUN mv /opt/kafka-manager-2.0.0.2 /opt/kafka-manager

EXPOSE 9000

CMD [“/opt/kafka-manager/bin/kafka-manager”]

上传到harbor仓库

[root@k8s-storage01 kafkamanager]# docker build -t 192.168.10.10/wiseco/kafka-manager-2.0.0.2:v1 .

[root@k8s-storage01 kafkamanager]# docker push 192.168.10.10/wiseco/kafka-manager-2.0.0.2:v1
二、创建kafkamanager的pod

[root@k8s-master01 kafkamanager]# pwd

/opt/k8s/k8s-project/kafka_zk/kafkamanager

[root@k8s-master01 kafkamanager]# cat kafkamanager.yaml

apiVersion: v1

kind: Service

metadata:

  name: kafkamanager

  namespace: wiseco

  labels:

    app: kafkamanager

spec:

  type: NodePort

  selector:

    app: kafkamanager

  ports:

  – name: http

    port: 9000

    targetPort: 9000

    nodePort: 39921



apiVersion: apps/v1

kind: Deployment

metadata:

  name: kafkamanager

  namespace: wiseco

spec:

  replicas: 1

  minReadySeconds: 10

  strategy:

    rollingUpdate:

      maxSurge: 1

      maxUnavailable: 0

    type: RollingUpdate

  selector:

    matchLabels:

      app: kafkamanager

  template:

    metadata:

      labels:

        app: kafkamanager

    spec:

      affinity:

        podAntiAffinity:

          requiredDuringSchedúlìngIgnoredDuringExecution:

            – labelSelector:

                matchExpressions:

                  – key: “app”

                    operator: In

                    values:

                      – kafkamanager

              topologyKey: “kubernetes.io/hostname”

      terminationGracePeriodSeconds: 120

      containers:

      – name: kafkamanager

        image: 192.168.10.10/wiseco/kafka-manager-2.0.0.2:v1

        imagePullPolicy: Always

        ports:

        – name: cport

          containerPort: 9000

        resources:

          requests:

            cpu: 100m

            memory: 100Mi

          limits:

            cpu: 500m

            memory: 400Mi

        lifecycle:

          postStart:

            exec:

              command: [“/bin/sh”,”-c”,”touch /tmp/health”]

        livenessProbe:

          exec:

            command: [“test”,”-e”,”/tmp/health”]

          initialDelaySeconds: 5

          timeoutSeconds: 5

          periodSeconds: 10

        readinessProbe:

          tcpSocket:

            port: cport

          initialDelaySeconds: 15

          timeoutSeconds: 5

          periodSeconds: 20创建并查看

[root@k8s-master01 kafkamanager]# kubectl apply -f kafkamanager.yaml

[root@k8s-master01 kafkamanager]# kubectl get pods -n wiseco|grep kafkamanager

kafkamanager-6b966689f6-mr9tq                   1/1     Running   0          2m51s

[root@k8s-master01 kafkamanager]# kubectl get svc -n wiseco|grep kafkamanager

kafkamanager            NodePort    10.254.240.254   <none>        9000:39921/TCP                   2m55s
三、kafkamanager访问

使用K8S的nodeport端口访问kafkamanager

登录用户是:admin

登录密码是:AdMin@123

更多关于K8S技术知识请查看下面的相关链接

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/105683.html

联系我们