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:
          requiredDuringSchedulingIgnoredDuringExecution:
            - 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技术知识请查看下面的相关链接

(0)

相关推荐

  • k8s部署redis cluster集群的实现

    Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序集合. 由于Redis接受多种格式的密钥,因此可以在服务器上执行操作,从而减少了客户端的工作量. 它仅将磁盘用于持久性,而将数据完全保存在内存中. Redis是一种流行的数据存储解决方案,并被GitHub,Pinterest,Snapchat,Twitter,StackOverflow,Flickr等技

  • Hyper-V下搭建K8S集群安装docker的方法步骤

    如果你安装了win10系统,想做k8s集群,win10自带的hyper-v也是一个很适合的虚拟机环境.在上一节中,我们安装了两台虚拟机,这一节,都安装上docker. master: 192.168.137.2 node1:  192.168.137.3 root密码:123456 1. 使用ssh登录虚拟机 有了ssh,在win10 host中就可以直接连接虚拟机了 ssh root@192.168.137.2 2.关闭安全配置 vi /etc/selinux/config 3.关闭防火墙 s

  • 打包docker镜像推送到远程服务器并部署到k8s的方法步骤

    目录 1.Dockerfile 2.pom配置 3.镜像推送 4.k8s部署 前提条件: 1.docker服务器已开启远程访问,参考<远程docker服务器携带证书连接>. 2.服务器上已经搭建好k8s集群,本文是k8s单点集群用于测试. 在之前的文章中我们已经通过idea的docker插件测试了远程docker服务器已经能够正常访问,虽然利用这个docker插件也可以完成docker镜像的打包及推送,但本文我们将换一种方式,使用maven的docker-maven-plugin插件完成doc

  • 使用Rancher在K8S上部署高性能PHP应用程序的教程

    介 绍 PHP是网络上最流行的编程语言之一,许多被广泛使用的内容管理系统都使用它开发,如WordPress和Drupal,并为现代服务器端框架(如Laravel和Symfony)提供核心代码. 尽管PHP很受欢迎,但是其缓慢和难以维护也是众所周知的.近几年这两个毛病已经没有那么严重了,但是高性能的PHP应用程序依然会需要两个功能:OPcache和PHP FastCGI进程管理器(PHP-FPM). 在本文中,你将了解到在Kubernetes上如何使用自定义OPcache和PHP-FPM配置部署一

  • k8s node节点重新加入master集群的实现

    1.删除node节点 执行kubectl delete node node01 2.这时如果直接执行加入,会报错.如下: [root@k8s-node02 pki]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6

  • Docker+K8S 集群环境搭建及分布式应用部署

    1.安装docker yum install docker #启动服务 systemctl start docker.service systemctl enable docker.service #测试 docker version 2.安装etcd yum install etcd -y #启动etcd systemctl start etcd systemctl enable etcd #输入如下命令查看 etcd 健康状况 etcdctl -C http://localhost:2379

  • k8s部署docker容器的实现

    环境:(docker ,k8s集群),继续上次docker 启动的java程序的镜像为例(https://www.jb51.net/article/189462.htm) 将制作的镜像推送到docker的私有仓库 docker tag demo-img:latest localhost:5000/demo-img:1.0 docker push localhost:5000/demo-img:1.0 k8s部署该镜像k8s创建命名空间及secret 创建命名空间cl-test,这里名字根据自己的

  • Docker学习笔记之k8s部署方法

    本文记录了如何在ubuntu 14.04裸机上部署k8s集群,参考自官方文档. 拓扑结构 1master + 2minion k8s-master 192.168.0.201 master k8s-node1 192.168.0.202 minion k8s-node2 192.168.0.203 minion 准备工作系统 安装Ubuntu 14.04 LTS 64bit server版本系统,配置好hostname和ip. 在更新国内的软件源的时候,由于GFW的原因,经常会出现md5校验错误

  • Kubernetes(k8s)基础介绍

    之前我一直想学习Kubernetes,因为它听起来很有意思(如果你是希腊人,你会觉得这个名字很有问题),但我从来没有机会,因为我没有任何东西需要运行在集群中.而最近,我的工作中开始逐步涉及Kubernetes相关的事情,所以这次我抓住机会,开始查资料,但后来我发现目前所有的资料(包括官方教程)都过于冗长,结构也不合理,这让我一开始有点沮丧. 经过几天的研究,我开始逐步理解Kubernetes的核心理念,并且把他部署到了生产环境中.因为我的简历现在说自己是个"Kubernetes专家",

  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    环境搭建概述 亲爱的家人们可以到链接:http://xiazai.jb51.net/202105/yuanma/javayaml_jb51.rar  下载所需要的yaml文件. 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化. 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管

  • 在docker中部署k8s的方法

    K8s k8s是一个cluster集群,在cluster集群中有多个Namespace,一个namespace下又有多个pods,一个pod下有多个container. 这篇文章带你从头在docker中部署k8s. docker下载 docker安装 docker: https://docs.docker.com/docker-for-mac/install/ 在docker中使用k8s: https://docs.docker.com/desktop/kubernetes/ 在docker设置

  • 使用k8s部署Django项目的方法步骤

    接触了一下docker和k8s,感觉是非常不错的东西.能够方便的部署线上环境,而且还能够更好的利用机器的资源,感觉是以后的大趋势.最近刚好有一个基于django的项目,所以就把这个项目打包到docker里面,放到k8是里面运行,顺便学习下k8s和docker的使用. docker 为什么使用docker? 我觉得docker最大的好处是部署的时候比较方便,一个预先打包好的docker镜像,可以在任何安装有docker的机器上面直接运行,不用再安装其他任何的依赖环境.不管是在开发.测试.还是发布阶

  • 云原生技术kubernetes(K8S)简介

    目录 01 kubernetes是什么? 02 kubernetes和Compost+Swarm之间的区别 03 一点总结 今天我们看看kubernetes技术的介绍,最近在极客时间上看张磊老师的深入kubernetes技术,讲的非常好,有兴趣的同学可以去收听一下,对于理解kubernetes技术非常有帮助,这里我会按照自己的进度,分享一下学习的笔记. 今天站的角度比较高,概念性质的东西会多一点. 01 kubernetes是什么? 曾经我认为这个问题很好回答,直到不断的去理解kubernete

  • SpringBoot应用快速部署到K8S的详细教程

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容: 所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: 背景 对于生产环境,我们一般会用CI&&CD工具完成整个构建和部署,因此本文不适合生产环境:对于学习和开发环境,我们频繁修改代码,又想快速见到效果,本文就是针对这种场景的: 内容简介 如果您正在开发SpringBoot应用,并且应用部署在K8S环境,可以参考本文将应用快速部署到K8S环

  • k8s部署ingress-nginx的方法步骤

    目录 前言 一.部署配置Ingress 二.使用https 前言 k8s集群服务部署好之后,需要对外提域名访问,这时候就需要ingress-nginx了,今天来给大家分享一下 一.部署配置Ingress 1.获取配置文件 #文件已下载到本地 https://github.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy 2.准备镜像 unzip ingress-nginx-nginx-0.20.0.zip cd ingress-nginx

  • 使用python脚本自动生成K8S-YAML的方法示例

    1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} labels: name: ${jarName} version: v1 spec: ports: - port: ${port} targetPort: ${port} selector: name: ${jarName} 转成json的结构 { "apiVersion": "

  • 在centos 7中安装配置k8s集群的步骤详解

    配置背景介绍 kubernetes是google开源的容器集群管理系统,提供应用部署.维护.扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母) 为什么要用kubernetes这么复杂的docker集群管理工具呢?一开始接触了docker内置的swarm,这个工具非常简单快捷的完成docker集群功能.但是在使用docker1.13内置的swarm做集群的时候遇到vip负载均衡没有正确映射端口到外网,或者出现地址被占用的情况,这对高可用性

  • 在K8s上部署Redis集群的方法步骤

    一.前言 架构原理:每个Master都可以拥有多个Slave.当Master下线后,Redis集群会从多个Slave中选举出一个新的Master作为替代,而旧Master重新上线后变成新Master的Slave. 二.准备操作 本次部署主要基于该项目:https://github.com/zuxqoj/kubernetes-redis-cluster 其包含了两种部署Redis集群的方式: StatefulSet Service&Deployment 两种方式各有优劣,对于像Redis.Mong

随机推荐