Kubernetes - 腾讯蓝鲸配置平台(CMDB)开源版部署

2023-11-23 02:22

本文主要是介绍Kubernetes - 腾讯蓝鲸配置平台(CMDB)开源版部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

蓝鲸CMDB

  蓝鲸配置平台(蓝鲸CMDB)是一个基于运维场景设计的企业配置管理服务。主要功能:

  1. 拓扑化的主机管理:主机基础属性、主机快照数据、主机归属关系管理

  2. 组织架构管理:可扩展的基于业务的组织架构管理

  3. 模型管理:既能管理业务、集群、主机等内置模型,也能自定义模型

  4. 进程管理:基于模块的主机进程管理

  5. 事件注册与推送:提供基于回调方式的事件注册与推送

  6. 通用权限管理:灵活的基于用户组的权限管理

  7. 操作审计:用户操作行为的审计与回溯

  

  官网地址:http://bk.tencent.com/

  源码地址:https://github.com/tencent/bk-cmdb

 

架构设计

  

 

  1. 资源层(store):提供系统所需的资源存储、消息队列以及缓存系统服务

  2. 服务层(service layer): 服务层划分为两大模块

      a. 资源管理模块:

    在配置平台中我们把资源类型进行了抽象,目前划分为主机、进程、通用对象三大类,支持横向扩展,每一类资源由一类微服务进程来管理。

      b. 业务场景模块:

    业务场景模块是基于资源管理模块的原子接口对应用场景的封装。

    基于操作的相关度,目前划分出admin、event、host、topo、process、datacollection几个微服务:

        admin服务负责系统的配置刷新、初始化数据写入等操作;

        event服务负责系统的事件订阅与推送服务;

        process、topo、host分别负责系统进程、拓扑模型、主机数据的使用场景;

        datacollection 服务负责系统快照数据的接收与写入。

  3. 接口层(api): 这一层是系统的api服务网关。

  4. web层(web): web层是系统提供的web服务。通过配置平台提供的web服务界面,用户可以进行资源的操作。

 

交互说明

  

 

  1. Zookeeper作为配置中心,利用Admin Server推送配置到Zookeeper,Zookeeper再把配置同步到各个服务的本地。

  2. Zookeeper作为服务中心,服务启动时自上报IP端口到Zookeeper,Zookeeper把各个服务的访问地址同步到各个服务本地。

  3. Zookeeper Node Watch机制:配置或服务地址更新,都将同步到各个服务本地。

  4. Web只通过ajax与Web Server交互,Web Server与Api Server交互,Api Server和各个业务场景模块、资源管理模块交互。

 

在线预览

  http://cmdb.erikxu.net

  当前的CMDB基于web pack打包的js文件比较大,第一次加载会比较慢。

  服务器在香港,有可能会稍有延迟。

  站点做了流量控制,一个ip每秒100次,一个ip每天100000次,如果接收到“Too Many Requests”的错误,请稍后再试。

  

 图1

 

  

图2

部署步骤

  0. 环境准备

名称操作系统IP说明
masterCentOS 7192.168.132.130

k8s master

nodeCentOS 7192.168.132.136k8s node
dbCentOS 7192.168.132.139数据库服务器,安装mongodb、redis、zookeeper
registry----镜像仓库(可选),可使用公有云仓库,可自建仓库

 

 

 

 

 

 

 

 

  1. 安装mongodb(db服务器,docker安装,版本4.0.4)

  docker pull mongo:4.0.4 

  mkdir -p /opt/mongo

  docker run --name mongo -v /opt/mongo:/data/db -d -p 27017:27017 mongo:4.0.4

 

  2. 安装redis(db服务器,docker安装,版本5.0.2)

  docker pull redis:5.0.2

  mkdir -p /opt/redis

  docker run --name redis -v /opt/redis:/data -d -p 6379:6379 redis:5.0.2 redis-server --requirepass cc

 

  3. 安装zookeeper(db服务器,docker安装,版本3.4.13)

  docker pull zookeeper:3.4.13

  mkdir -p /opt/zookeeper 

  docker run --name zookeeper -v /opt/zookeeper:/data -d -p 2181:2181 zookeeper:3.4.13

 

  4. 配置mongodb(db服务器)

  docker exec -it mongo /bin/bash

  mongo

  use cmdb

  db.createUser({user: "cc",pwd: "cc",roles: [ { role: "readWrite", db: "cmdb" } ]})

  

 

  5. 源码编译

  可以按照官方文档进行编译,我这里直接使用可执行文件(linux),版本3.1.0

 

  6. 下载可执行文件,并解压到k8s的node节点上,在node节点上直接打docker镜像(单node,不使用镜像仓库)

  cd /root

  tar -zvxf cmdb.tar.gz -C /root

 

  7. 初始化配置文件(k8s node节点)

  cd /root/cmdb

  python init.py --discovery 192.168.132.139:2181 --database cmdb --redis_ip 192.168.132.139 --redis_port 6379 --redis_pass cc --mongo_ip 192.168.132.139 --mongo_port 27017 --mongo_user cc --mongo_pass cc --blueking_cmdb_url http://127.0.0.1:8083 --listen_port 8083

  上述指令根据实际填写

 

  8. 调整配置文件(k8s node节点)

  cd /root/cmdb/cmdb_adminserver/configures

  a. 修改html_root

  vi webserver.conf

  把html_root=/root/cmdb/web修改为html_root=/cmdb_webserver/web

 

  b. 修改mongo连接串支持mongo 3.6以上版本(可选)

  由于MongoDB 从3.6开始更改了默认加密方式,所以如果安装的MongoDB的版本大于等于3.6。

  需要手动将configures中每个配置文件中MongoDB的配置项中增加mechanism=SCRAM-SHA-1

  

 

  9. 启动Admin Server,并把配置文件写入Zookeeper(k8s node节点)

  cd /root/cmdb/cmdb_adminserver/

  chmod +x start.sh

  ./start.sh

  curl -X POST -H 'Content-Type:application/json' -H 'BK_USER:migrate' -H 'HTTP_BLUEKING_SUPPLIER_ID:0' http://192.168.132.138:60004/migrate/v3/migrate/community/0

  

 

  10. 拷贝web目录到cmdb_webserver目录(k8s node节点)

  cp -rf /root/cmdb/web /root/cmdb/cmdb_webserver/web

 

  11. 把可执行程序打包成docker镜像(k8s node节点)

  a. start.sh样例

#!/bin/bashset -e# get local IP.
localIp=`python ip.py`# get zookeeper path from environment variables 
zookeeperPath="127.0.0.1:2181"
if [ "$ZOOKEEPER_PATH" ]; thenzookeeperPath=$ZOOKEEPER_PATH
fi# set execute 
chmod +x cmdb_apiserver
./cmdb_apiserver --addrport=${localIp}:8080 --logtostderr=true --v=3 --regdiscv=${zookeeperPath}

 

  b. Dockerfile样例

FROM centos:7.6.1810
COPY . /cmdb_apiserver
WORKDIR /cmdb_apiserver
EXPOSE 8080/tcp
RUN chmod +x start.sh
ENTRYPOINT ./start.sh

 

  在k8s的node节点上构建镜像

  docker build -t cmdb-apiserver:3.1.0 .

  

 

  如果不想自己打镜像,可以直接使用打好的镜像:https://console.cloud.tencent.com/tke/registry/qcloud/default?rid=1,搜索erik_xu/cmdb:

   

 

  12. 执行yaml脚本完成部署(k8s master节点)

  yaml样例:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: cmdb-apiserverlabels:app: cmdb-apiservernamespace: default
spec:replicas: 1template:metadata:labels:app: cmdb-apiserverspec:nodeSelector:kubernetes.io/role: nodecontainers:- name: cmdb-apiserverimage: cmdb-apiserver:3.1.0env:- name: ZOOKEEPER_PATHvalue: 192.168.132.139:2181ports:- containerPort: 8080---kind: Service
apiVersion: v1
metadata:name: cmdb-apiserverlabels:app: cmdb-apiservernamespace: default
spec:selector:app: cmdb-apiserverports:- name: cmdb-apiservertargetPort: 8080port: 8080protocol: TCP

 

  把环境变量ZOOKEEPER_PATH的值改成对应的Zookeeper地址,执行脚本完成部署:

  kubectl create -f /root/yamls/all-in-one.yaml

  yaml地址:https://github.com/ErikXu/bk-cmdb-kubernetes-deploy/blob/master/yamls/all-in-one.yaml

  

  

  注:cmdb只有web server需要外部访问,因此,只有web server通过node port的方式映射到虚拟机上,yaml文件里的映射端口是30000,可以根据实际调整。

 

Zookeeper使用介绍

   Zookeeper在CMDB充当了配置管理以及服务注册发现的重要角色,因此,我们有必要去了解它。

 

  使用zkCli连接容器中的Zookeeper

  docker run -it --rm --link zookeeper:zookeeper zookeeper:3.4.13 zkCli.sh -server zookeeper

  

  查看Zookeeper目录

  ls /

  

  

  发现有一个目录cc,但是无权限查看

   ls /cc

  

  

  查看Acl

  getAcl /cc

  

  

  使用帐号密码认证,可以看到cc目录里的内容

  addauth digest cc:3.0#bkcc

  

  帐号密码从CMDB的源码取得

  

    

  找到配置文件的目录

  ls /cc/services/config

  

  

  查看其中一个配置文件

  get /cc/services/config/webserver

  

 

  查看服务注册目录

  ls /cc/services/endpoints

  

 

  查看其中一个服务注册内容,可以看到它自上报的ip及端口

  

 

脚本地址

  https://github.com/ErikXu/bk-cmdb-kubernetes-deploy

转载于:https://www.cnblogs.com/Erik_Xu/p/10092028.html

这篇关于Kubernetes - 腾讯蓝鲸配置平台(CMDB)开源版部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/414631

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推