CMAK
之前使用 Kafka Manager 在官网已不在维护,而使用 cmak,Github地址: https://github.com/yahoo/CMAK
,这将CMAK 交付到k8s集群中。
构建镜像
[root@www ~]# wget https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip
[root@www ~]# mkdir cmak
[root@www ~]# unzip cmak-3.0.0.5.zip -d cmak
[root@www ~]# cd cmak/cmak-3.0.0.5
## 删除无用的文件
[root@www cmak-3.0.0.5]# rm -rf README.md share/
[root@www cmak-3.0.0.5]# rm -rf bin/*.bat
[root@www cmak-3.0.0.5]# cd ..
[root@www cmak]# vim Dockerfile
## 最小JDK版本要使用 JDK11
FROM openjdk:11.0.10-slim
RUN rm -rf /etc/localtime && \
rm -rf /etc/timezone && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
ADD cmak-3.0.0.5/ /opt/cmak-3.0.0.5/
## 启动执行,默认端口号为9000,可以使用 -Dhttp.port=xxx 指定端口号
ENTRYPOINT ["/opt/cmak-3.0.0.5/bin/cmak","-Dconfig.file=/opt/cmak-3.0.0.5/conf/application.conf"]
## 构建镜像
[root@www cmak]# docker build -t kevin2099/cmak:3.0.0.5 .
## push到个人 docker hub 仓库
[root@www cmak]# docker push kevin2099/cmak:3.0.0.5
交付K8s容器
资源配置清单
deploy.yaml
## Service
kind: Service
apiVersion: v1
metadata:
labels:
name: cmak
name: cmak
namespace: infra
spec:
ports:
- port: 9000
targetPort: 9000
selector:
name: cmak
---
## Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
name: cmak
name: cmak
namespace: infra
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
name: cmak
template:
metadata:
labels:
name: cmak
spec:
containers:
- name: cmak
image: kevin2099/cmak:3.0.0.5
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9000
protocol: TCP
env:
## 定义环境变量 zk连接地址
- name: ZK_HOSTS
value: "www.kevin.com:2181"
## 定义环境变量 启动认证
- name: KAFKA_MANAGER_AUTH_ENABLED
value: "true"
## 定义环境变量 认证用户名
- name: KAFKA_MANAGER_USERNAME
value: "admin"
## 定义环境变量 认证用户密码
- name: KAFKA_MANAGER_PASSWORD
value: "admin"
route.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: cmak-route
namespace: infra
spec:
entryPoints:
- web
routes:
- match: Host(`cmak.kevin.com`)
kind: Rule
services:
- name: cmak
port: 9000
应用资源清单
[root@k8s-180 cmak]# kubectl apply -f deploy.yaml
[root@k8s-180 cmak]# kubectl apply -f route.yaml
配置DNS 解析
## 在该文件中 添加如下一行
[root@www cmak]# vim /var/named/kevin.com.zone
cmak A 192.168.1.189
## 重新热加载配置
[root@www cmak]# rndc freeze kevin.com
[root@www cmak]# rndc thaw kevin.com
此时,在浏览器访问 http://cmak.kevin.com
,如果正常出现授权的页面,部署成功,根据页面配置创建Cluster后,如下图