k8s部署最新版zookeeper集群(3.9.2),并配置prometheus监控

目录

  • zookeeper集群部署
    • 创建zookeeper文件夹
    • namespace.yaml
    • scripts-configmap.yaml
    • serviceaccount.yaml
    • statefulset.yaml
    • svc-headless.yaml
    • svc.yaml
    • metrics-svc.yaml
    • 执行部署
  • 接入prometheus
    • 访问prometheus查看接入情况
    • 导入zookeeper监控模版
    • 监控展示

zookeeper集群部署

复制粘贴即用

创建zookeeper文件夹

# 创建文件夹
mkdir -p /opt/zookeeper
cd /opt/zookeeper

namespace.yaml

apiVersion: v1
kind: Namespace
metadata:labels:kubernetes.io/metadata.name: zookeepername: zookeeper

scripts-configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:name: zookeeper-scriptsnamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeper
data:init-certs.sh: |-#!/bin/bashsetup.sh: |-#!/bin/bash# Execute entrypoint as usual after obtaining ZOO_SERVER_ID# check ZOO_SERVER_ID in persistent volume via myid# if not present, set based on POD hostnameif [[ -f "/bitnami/zookeeper/data/myid" ]]; thenexport ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)"elseHOSTNAME="$(hostname -s)"if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; thenORD=${BASH_REMATCH[2]}export ZOO_SERVER_ID="$((ORD + 1 ))"elseecho "Failed to get index from hostname $HOSTNAME"exit 1fifiexec /entrypoint.sh /run.sh

serviceaccount.yaml

apiVersion: v1
kind: ServiceAccount
metadata:name: zookeepernamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeperrole: zookeeper
automountServiceAccountToken: false

statefulset.yaml

---
# Source: zookeeper/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:name: zookeepernamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeperrole: zookeeper
spec:replicas: 3revisionHistoryLimit: 10podManagementPolicy: Parallelselector:matchLabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/component: zookeeperserviceName: zookeeper-headlessupdateStrategy:rollingUpdate: {}type: RollingUpdatetemplate:metadata:annotations:labels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeperspec:enableServiceLinks: trueserviceAccountName: zookeeper# 取消为 service account 自动挂载 API 凭证automountServiceAccountToken: falseaffinity:podAffinity:# pod反亲和,将pod打散至不同节点,实现高可用podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- podAffinityTerm:labelSelector:matchLabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/component: zookeepertopologyKey: kubernetes.io/hostnameweight: 1nodeAffinity:# 配置安全上下文    securityContext:fsGroup: 1001fsGroupChangePolicy: AlwayssupplementalGroups: []sysctls: []initContainers:containers:- name: zookeeperimage: docker.io/bitnami/zookeeper:3.9.2-debian-12-r2imagePullPolicy: "IfNotPresent"securityContext:allowPrivilegeEscalation: falsecapabilities:drop:- ALLprivileged: falsereadOnlyRootFilesystem: truerunAsGroup: 1001runAsNonRoot: truerunAsUser: 1001seLinuxOptions: {}seccompProfile:type: RuntimeDefaultcommand:- /scripts/setup.shresources:limits:cpu: 375mephemeral-storage: 1024Mimemory: 384Mirequests:cpu: 250mephemeral-storage: 50Mimemory: 256Mienv:- name: BITNAMI_DEBUGvalue: "false"- name: ZOO_DATA_LOG_DIRvalue: ""- name: ZOO_PORT_NUMBERvalue: "2181"- name: ZOO_TICK_TIMEvalue: "2000"- name: ZOO_INIT_LIMITvalue: "10"- name: ZOO_SYNC_LIMITvalue: "5"- name: ZOO_PRE_ALLOC_SIZEvalue: "65536"- name: ZOO_SNAPCOUNTvalue: "100000"- name: ZOO_MAX_CLIENT_CNXNSvalue: "60"- name: ZOO_4LW_COMMANDS_WHITELISTvalue: "srvr, mntr, ruok"- name: ZOO_LISTEN_ALLIPS_ENABLEDvalue: "no"- name: ZOO_AUTOPURGE_INTERVALvalue: "1"- name: ZOO_AUTOPURGE_RETAIN_COUNTvalue: "10"- name: ZOO_MAX_SESSION_TIMEOUTvalue: "40000"- name: ZOO_SERVERSvalue: zookeeper-0.zookeeper-headless.zookeeper.svc.cluster.local:2888:3888::1 zookeeper-1.zookeeper-headless.zookeeper.svc.cluster.local:2888:3888::2 zookeeper-2.zookeeper-headless.zookeeper.svc.cluster.local:2888:3888::3 - name: ZOO_ENABLE_AUTHvalue: "no"- name: ZOO_ENABLE_QUORUM_AUTHvalue: "no"- name: ZOO_HEAP_SIZEvalue: "1024"- name: ZOO_LOG_LEVELvalue: "ERROR"- name: ALLOW_ANONYMOUS_LOGINvalue: "yes"- name: ZOO_ENABLE_PROMETHEUS_METRICSvalue: "yes"- name: ZOO_PROMETHEUS_METRICS_PORT_NUMBERvalue: "9141"- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: ZOO_ADMIN_SERVER_PORT_NUMBERvalue: "8080"ports:- name: clientcontainerPort: 2181- name: followercontainerPort: 2888- name: electioncontainerPort: 3888# 开启metrics,供prometheus监控- name: metricscontainerPort: 9141- name: http-admincontainerPort: 8080livenessProbe:failureThreshold: 6initialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 5exec:command:- /bin/bash- -ec- ZOO_HC_TIMEOUT=2 /opt/bitnami/scripts/zookeeper/healthcheck.shreadinessProbe:failureThreshold: 6initialDelaySeconds: 5periodSeconds: 10successThreshold: 1timeoutSeconds: 5exec:command:- /bin/bash- -ec- ZOO_HC_TIMEOUT=2 /opt/bitnami/scripts/zookeeper/healthcheck.shvolumeMounts:- name: empty-dirmountPath: /tmpsubPath: tmp-dir- name: empty-dirmountPath: /opt/bitnami/zookeeper/confsubPath: app-conf-dir- name: empty-dirmountPath: /opt/bitnami/zookeeper/logssubPath: app-logs-dir- name: scriptsmountPath: /scripts/setup.shsubPath: setup.sh- name: datamountPath: /bitnami/zookeepervolumes:- name: empty-diremptyDir: {}- name: scriptsconfigMap:name: zookeeper-scriptsdefaultMode: 493volumeClaimTemplates:- metadata:name: dataspec:accessModes:- "ReadWriteOnce"resources:requests:storage: "10Gi"# 按当前集群存储类修改    storageClassName: nfs-client

svc-headless.yaml

apiVersion: v1
kind: Service
metadata:name: zookeeper-headlessnamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeper
spec:type: ClusterIPclusterIP: NonepublishNotReadyAddresses: trueports:- name: tcp-clientport: 2181targetPort: client- name: tcp-followerport: 2888targetPort: follower- name: tcp-electionport: 3888targetPort: electionselector:app.kubernetes.io/name: zookeeperapp.kubernetes.io/component: zookeeper

svc.yaml

apiVersion: v1
kind: Service
metadata:name: zookeepernamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: zookeeper
spec:type: ClusterIPsessionAffinity: Noneports:- name: tcp-clientport: 2181targetPort: clientnodePort: null- name: tcp-followerport: 2888targetPort: follower- name: tcp-electionport: 3888targetPort: electionselector:app.kubernetes.io/name: zookeeperapp.kubernetes.io/component: zookeeper

metrics-svc.yaml

apiVersion: v1
kind: Service
metadata:name: zookeeper-metricsnamespace: zookeeperlabels:app.kubernetes.io/name: zookeeperapp.kubernetes.io/version: 3.9.2app.kubernetes.io/component: metricsannotations:prometheus.io/path: /metricsprometheus.io/port: "9141"# 开启prometheus监控prometheus.io/scrape: "true"
spec:type: ClusterIPports:- name: tcp-metricsport: 9141targetPort: metricsselector:app.kubernetes.io/name: zookeeperapp.kubernetes.io/component: zookeeper

执行部署

# 执行部署
kubectl apply -f .
# 查看部署情况
kubectl get pod,svc,pvc -n zookeeper
NAME              READY   STATUS    RESTARTS   AGE
pod/zookeeper-0   1/1     Running   0          16h
pod/zookeeper-1   1/1     Running   0          16h
pod/zookeeper-2   1/1     Running   0          16hNAME                         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                      AGE
service/zookeeper            ClusterIP   10.0.6.237   <none>        2181/TCP,2888/TCP,3888/TCP   19h
service/zookeeper-headless   ClusterIP   None         <none>        2181/TCP,2888/TCP,3888/TCP   19h
service/zookeeper-metrics    ClusterIP   10.0.8.208   <none>        9141/TCP                     19hNAME                                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/data-zookeeper-0   Bound    pvc-a6ac5f14-bd56-4d20-8e8b-64b8efe4ab52   10Gi       RWO            nfs-client     19h
persistentvolumeclaim/data-zookeeper-1   Bound    pvc-7beccb60-202f-4be4-90e0-2178385055fb   10Gi       RWO            nfs-client     19h
persistentvolumeclaim/data-zookeeper-2   Bound    pvc-7c5ed75d-0467-4007-b5f1-7a7701b91b92   10Gi       RWO            nfs-client     19h

接入prometheus

prometheus部署可查看历史博客:k8s-prometheus+grafana+alertmanager监控加邮件告警

访问prometheus查看接入情况

在这里插入图片描述

导入zookeeper监控模版

模版编号: 10465
在这里插入图片描述

监控展示

注:刚部署完监控值皆为0,图中为接入业务后有数据显示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/323486.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 操作系统TCP、UDP

1、TCP服务器编写流程 头文件&#xff1a; #include <sys/socket.h> 1.1 创建套接字 函数原型&#xff1a; int socket(int domain, int type, int protocol); 参数&#xff1a; domain: 网域 AF_INET &#xff1a; IPv4 AF_INET6 &a…

第十五届蓝桥杯省赛大学B组(c++)

很幸运拿了辽宁赛区的省一,进入6月1号的国赛啦... 这篇文章主要对第十五届省赛大学B组(C)进行一次完整的复盘,这次省赛2道填空题6道编程题: A.握手问题 把握手情景看成矩阵: 粉色部分是7个不能互相捂手的情况 由于每个人只能和其他人捂手, 所以黑色情况是不算的 1和2握手2和…

Vue+OpenLayers7入门到实战:OpenLayers解析通过fetch请求的GeoJson格式数据,并叠加要素文字标注,以行政区划边界为例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上通过fetch请求geojson数据,然后通过OpenLayers解析为Feature要素叠加到图层上,并且通过动态设置标注方式显示要素属性为文字标注。 本章还是以行政区划边界为例,这个…

大模型LLM之SFT微调总结

一. SFT微调是什么 在大模型的加持下现有的语义理解系统的效果有一个质的飞跃&#xff1b;相对于之前的有监督的Pre-Train模型&#xff1b;大模型在某些特定的任务中碾压式的超过传统nlp效果&#xff1b;由于常见的大模型参数量巨大&#xff1b;在实际工作中很难直接对大模型训…

游戏陪玩平台app小程序H5源码交付游戏陪玩接单软件游戏陪玩源码 陪玩小程序陪玩工作室运营模式陪玩管理系统游戏陪玩工作室怎么做

提供陪玩平台源码&#xff0c;陪玩系统源码&#xff0c;陪玩app源码&#xff0c;团队各部门配备齐全&#xff0c;分工明确&#xff0c;及时对接开发进度&#xff0c;保证开发效率 一、陪玩平台源码的功能介绍 1、派单大厅:陪玩系统源码的派单大厅内支持用户通过语音连麦的方式…

Vue.js-----vue组件

能够说出vue生命周期能够掌握axios的使用能够了解$refs, $nextTick作用能够完成购物车案例 Vue 生命周期讲解 1.钩子函数 目标&#xff1a;Vue 框架内置函数&#xff0c;随着组件的生命周期阶段&#xff0c;自动执行 作用: 特定的时间点&#xff0c;执行特定的操作场景: 组…

硬性清空缓存的方法

前端发布代码后&#xff0c;我们是需要刷新页面再验证的。有时候仅仅f5 或者ctrlshiftdelete快捷键仍然有历史缓存&#xff0c;这时可以通过下面的方法硬性清空缓存。 以谷歌浏览器为例&#xff0c;打开f12&#xff0c;右键点击刷新按钮&#xff0c;选择【清空缓存并硬性加载】…

Windows只能安装在GPT磁盘上

转换磁盘分区形式 步骤1. 先按照正常流程使用Windows系统安装光盘或系统U盘引导计算机。 步骤2. 在Windows安装程序中点击“开始安装”&#xff0c;然后按ShiftF10打开命令提示符。 步骤3. 依次输入以下命令&#xff0c;并在每一行命令后按一次Enter键执行。 步骤4. 等待转换…

C++ | Leetcode C++题解之第78题子集

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> t;vector<vector<int>> ans;void dfs(int cur, vector<int>& nums) {if (cur nums.size()) {ans.push_back(t);return;}t.push_back(nums[cur]);dfs(cur 1, nums);t.po…

自动驾驶学习2-毫米波雷达

1、简介 1.1 频段 毫米波波长短、频段宽,比较容易实现窄波束,雷达分辨率高,不易受干扰。波长介于1~10mm的电磁波,频率大致范围是30GHz~300GHz 毫米波雷达是测量被测物体相对距离、相对速度、方位的高精度传感器。 车载毫米波雷达主要有24GHz、60GHz、77GHz、79GHz四个频段。 …

深度学习基础之《TensorFlow框架(17)—卷积神经网络》

一、卷积神经网络介绍 1、背景 随着人工智能需求的提升&#xff0c;我们想要做复杂的图像识别&#xff0c;做自然语言处理&#xff0c;做语义分析翻译等等&#xff0c;多层神经网络的简单叠加显然力不从心 2、卷积神经网络与传统多层神经网络对比 &#xff08;1&#xff09;传…

实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【图像识别】Swin Transformer

一、引言 论文&#xff1a; Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 作者&#xff1a; Microsoft Research Asia 代码&#xff1a; Swin Transformer 特点&#xff1a; 提出滑动窗口自注意力 (Shifted Window based Self-Attention) 解决Vi…

【3D基础】坐标转换——地理坐标投影到平面

汤国安版GIS原理第二章重点 1.常见投影方式 https://download.csdn.net/blog/column/9283203/83387473 Web Mercator投影&#xff08;Web Mercator Projection&#xff09;&#xff1a; 优点&#xff1a; 在 Web 地图中广泛使用&#xff0c;易于显示并与在线地图服务集成。在…

java.net.SocketInputStream.socketRead0 卡死导致 tomcat 线程池打满的问题

0 TL;DR; 问题与原因&#xff1a;某些特定条件下 java.net.SocketInputStream.socketRead0 方法会卡死&#xff0c;导致运行线程一直被占用导致泄露采用的方案&#xff1a;使用监控线程异步监控卡死事件&#xff0c;如果发生直接关闭网络连接释放链接以及对应的线程 1. 问题 …

Burp Suite 抓包,浏览器提示有软件正在阻止Firefox安全地连接到此网站

问题现象 有软件正在阻止Firefox安全地连接到此网站 解决办法 没有安装证书&#xff0c;在浏览器里面安装bp的证书就可以了 参考&#xff1a;教程合集 《H01-启动和激活Burp.docx》——第5步

WhisperCLI-本地部署语音识别系统;Mis开源LLM推理平台;Dokploy-开源版Vercel;Mem-大规模知识图谱

1. Whisper-cli&#xff1a;可本地部署的开源语音识别系统 近日&#xff0c;Ruff的开发团队发布了一款名为Whisper cpp cli的全新语音识别系统&#xff0c;该系统已在GitHub Repo上开源。这是一款完全自主研发的语音转文字系统&#xff0c;基于Whisper技术构建。Ruff团队一直以…

Istio基础知识

一、什么是Istio Istio 提供⼀种简单的⽅式来为已部署的服务建⽴⽹络&#xff0c;该⽹络具有 负载均衡、服务间认证、监控等功能&#xff0c;只需要对服务的代码进⾏⼀点或不需要做任何改动。想要让服务⽀持 Istio&#xff0c;只需要在您的环境中部署⼀个特殊的 sidecar 代 理&…

netsh命令

netsh是本地或远程计算机Windows 2000网络组件的命令行和脚本实用程序。为了存档或配置其他服务器&#xff0c;netsh实用程序也可将配置脚本保存在文本文件中。netsh实用程序是一个外壳&#xff0c;通过附加的“netsh帮助DLL”可支持多个Windows 2000组件。 有两种方式可以运行…

从 Servlet 到 DispatcherServlet(SpringMvc 容器的创建)

DispatcherServlet 的继承体系 SpringMvc 是一个具有 Spring 容器&#xff08;ApplicationContext&#xff09;的 Servlet。其中&#xff0c;HttpServlet 属于 JDK 的内容&#xff0c;从 HttpServletBean 开始&#xff0c;便属于 Spring 体系中的内容。 HttpServletBean&…