开普勒云平台:如何安装依赖
ztj100 2024-11-23 00:02 12 浏览 0 评论
本文介绍开普勒云平台如何安装依赖。
Kplcloud是什么?
kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。
一、Namespace
建议将与开普勒相关的服务独立到一个专有的 Namespace下,在Kubernetes创建新的空间。您可以执行以下命令创建该空间
$ kubectl create namespace kpaas
或执行以下命令 :
$ kubectl apply -f install/kubernetes/namespace.yaml
二、配置持久化存储
2.1 持久化存储的相关配置
这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。
$ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/kubernetes/storage/rbac.yaml $ kubectl apply -f install/kubernetes/storage/provisioner.yaml $ kubectl apply -f install/kubernetes/storage/stroageclass.yaml
2.2 需要调整provisioner
根据您自己的环境调service地址及path。
volumes: - name: kpl-nfs-client-root nfs: server: 172.16.0.4 path: "/home/data" containers: - name: kpl-nfs-client-provisioner image: quay.io/external_storage/nfs-client-provisioner:latest env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: 172.16.0.4 - name: NFS_PATH value: "/home/data"
三、安装Redis 单点
为了方便给大家演示,redis也使用的docker版本部署在kubernetes集群上,真实环境请使用独立的redis服务器或集群
如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装Redis服务。
3.1 安装
$ kubectl apply -f install/kubernetes/redis/statefulset.yaml $ kubectl apply -f install/kubernetes/redis/service.yaml $ kubectl apply -f install/kubernetes/redis/configmap.yaml
redis的配置相关信息写在configmap里面 statefulset.yaml
官方redis默认的存在/data目录,所以我们需要将持久化存储目标配置在/data目录下。
四、安装Consul集群
如果您的独立的Consul集群或不想使用Consul的话,不需要执行以下命令。 以下命令是将docker版的consul集群安装在您的kubernetes集群上前提是前必须有持久化存储。
如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装consul集群。
4.1 安装
$ kubectl apply -f install/kubernetes/consul/configmap.yaml $ kubectl apply -f install/kubernetes/consul/service.yaml $ kubectl apply -f install/kubernetes/consul/statefulset.yaml $ kubectl apply -f install/kubernetes/consul/ingress.yaml
咱们采用的是StatefulSet的方式部署集群,若您已经有了持久化的存储类,将storageClassName修改成您的存储类包就好。
ingress.yaml 提供对外访问的入口
configmap.yaml consul cluster server的配置文件
4.2 注释
这个kubernetes亲和度问题您可能需要关注一下,如果您的kubernetes是单点,请使用以下注释掉的代码。否由会无法起动服务。
affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app: consul component: server topologyKey: kubernetes.io/hostname # # 单节点用这个 # preferredDuringSchedulingIgnoredDuringExecution: # - wight: 100 # podAffinityTerm: # topologyKey: kubernetes.io/hostname
五、安装RabbitMQ服务
为了方便给大家演示,rabbitmq也使用的docker版本部署在kubernetes集群上,真实环境请使用独立的rabbitmq服务器
如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装rabbitMQ服务。
5.1 安装
$ kubectl apply -f install/kubernetes/rabbitmq/statefulset.yaml $ kubectl apply -f install/kubernetes/rabbitmq/service.yaml
有状态服务: statefulset.yaml 入口: ingress.yaml
kpass在rabbitmq里需要创建:
- Vhost: kplcloud
- Exchanges: kplcloud-exchange
- User: kplcloud
- RoutingKey: kplcloud
六、安装Mysql服务
6.1 mysql
为了方便给大家演示,mysql也使用的docker版本部署在kubernetes集群上,真实环境请使用独立的mysql服务器
如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装mysql服务。
6.2 安装
$ kubectl apply -f install/kubernetes/mysql/statefulset.yaml $ kubectl apply -f install/kubernetes/mysql/service.yaml
- MYSQL_ROOT_PASSWORD: mysql用户名
- MYSQL_ROOT_PASSWORD: mysql密码
statefulset.yaml
本项目需要创建数据库: kplcloud
七、安装ELK
Logstash、ES对机器要的求比较高,建议使用独立的ELK集群负责日志的采集分析
如果您非要使用Docker版的elk的并且部署在Kubernetes集群里,如果还没有初始货持久化存储,先初始化持久化存储的,请在这里持久化存储配置好存储类再安装相关服务服务。
ELK主要包含Elasticsearch、Logstash、Kibana几个服务,kibana和logstash可以做在Deployment,全ES需要持久化,因为日志数据是存在ES上的。
$ kubectl apply -f install/kubernetes/elk/elasticsearch.yaml $ kubectl apply -f install/kubernetes/elk/logstash.yaml $ kubectl apply -f install/kubernetes/elk/kibana.yaml $ kubectl apply -f install/kubernetes/elk/ingress.yaml
八、安装Harbor
镜像仓库就别在跑kubernetes集群上了,似乎也跑不了,找一台容量大的有安装Docker的服务器进行搭建。
安装启动方式,请查看官方说明:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
8.1 安装
下载Harbor安装文件,我这下的是离线处理,如果下载不了请加代理
$ https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz
8.2 解压
$ tar -zxvf harbor-offline-installer-v1.8.1.tgz
8.3 配置harbor文件 harbor.conf
## Configuration file of Harbor # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost hostname = hub.kpaas.nsini.com # 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on ui_url_protocol = http # mysql数据库root用户默认密码root123,实际使用时修改下 db_password = root123 max_job_workers = 3 customize_crt = on ssl_cert = /data/cert/server.crt ssl_cert_key = /data/cert/server.key secretkey_path = /data admiral_url = NA # 邮件设置,发送重置密码邮件时使用 email_identity = email_server = smtp.mydomain.com email_server_port = 25 email_username = sample_admin@mydomain.com email_password = abc email_from = admin <sample_admin@mydomain.com> email_ssl = false # 启动Harbor后,管理员UI登录的密码,默认是Harbor12345 harbor_admin_password = Harbor12345 # 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证 auth_mode = db_auth # LDAP认证时配置项 #ldap_url = ldaps://ldap.mydomain.com #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com #ldap_search_pwd = password #ldap_basedn = ou=people,dc=mydomain,dc=com #ldap_filter = (objectClass=person) #ldap_uid = uid #ldap_scope = 3 #ldap_timeout = 5 # 是否开启自注册 self_registration = on # Token有效时间,默认30分钟 token_expiration = 30 # 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员) project_creation_restriction = everyone verify_remote_cert = on
8.4 启动Harbor,直接执行./install.sh 或 docker-composer都可以
$ ./install.sh $ docker-compose start
九、Prometheus安装
如果还没有初始货持久化存储,先初始化持久化存储的,请在这里持久化存储配置好存储类再安装相关服务服务。
Prometheus 需要将数据存在本地,所以需要挂载持久化存储。
$ kubectl apply -f install/kubernetes/prometheus/deployment.yaml $ kubectl apply -f install/kubernetes/prometheus/ingress.yaml $ kubectl apply -f install/kubernetes/prometheus/configmap.yaml $ kubectl apply -f install/kubernetes/prometheus/serviceaccount.yaml $ kubectl apply -f install/kubernetes/prometheus/service.yaml $ kubectl apply -f install/kubernetes/prometheus/persistentvolumeclaim.yaml
9.1 相关配置
configmap.yaml文件有五个文件:
- etcd3.rules.yml
- kube-state-metrics_rules.yml
- kubelet_rule.yml
- kubernetes_rule.yml
- prometheus.yml
在prometheus里引用了上面4个文件。如果您有新的规则可以在这里增加。
在prometheus.yml 文件里有配置 alerting 目前默认发身 alertmanager:9093 ,若您有自己的报警管理平台,修改该地址就行,若还想使用alertmanager的话请看安装AlertManager。
十、安装配置alertmanager
Alertmanager 主要是接收来自prometheus 的alert数据
10.1 安装
可以独立安装不使用Docker,以下案例是部署在kubernetes集群上。
$ kubectl apply -f install/kubernetes/alertmanager/deployment.yaml $ kubectl apply -f install/kubernetes/alertmanager/ingress.yaml $ kubectl apply -f install/kubernetes/alertmanager/configmap.yaml $ kubectl apply -f install/kubernetes/alertmanager/service.yaml
10.2 相关配置
这里采用webhook的方式将报警信息发送到kplcloud平台,kplcloud接收数据处理并入rabbitmq。
apiVersion: v1 data: config.yml: |- global: route: group_by: ['alertname', 'cluster', 'service'] group_wait: 30s group_interval: 5m repeat_interval: 10m receiver: webhook receivers: - name: 'webhook' webhook_configs: - url: 'http://kplcloud:8080/public/prometheus/alerts' kind: ConfigMap metadata: name: alertmanager
kplcloud处理完的数据最终根据相应的规则推送给相应的用户及平台等。
十一、安装kpaas
$ git clone github.com/kplcloud/kplcloud.git
11.1 Docker
$ docker pull kplcloud/kplcloud:latest
11.2 kubernetes
基础服务安装: install.md
若您的其他服务都已经准备好了,可以直接执行以下命令在kubernetes上进行部署开普勒云平台。
$ kubectl apply -f install/kubernetes/kpaas/configmap.yaml $ kubectl apply -f install/kubernetes/kpaas/deployment.yaml $ kubectl apply -f install/kubernetes/kpaas/service.yaml $ kubectl apply -f install/kubernetes/kpaas/ingress.yaml
如果您有私有仓库,记得在master节点上执行一下:
$ kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson -n default
在每个namespace下都创建一下,这样k8s就有权限拉取私有仓库的镜像了
Deployment需要把imagePullSecrets加上:
imagePullSecrets: - name: regcred
开源地址:
- Github: https://github.com/kplcloud/kplcloud
- Document: https://docs.nsini.com
- Demo: https://kplcloud.nsini.com
作者:宜人金科-财富技术部-创新团队
来源:宜信技术学院
- 上一篇:带你了解 免杀的小知识
- 下一篇:「正点原子FPGA连载」第十四章U-Boot移植
相关推荐
- 利用navicat将postgresql转为mysql
-
导航"拿来主义"吃得亏自己动手,丰衣足食...
- Navicat的详细教程「偷偷收藏」(navicatlite)
-
Navicat是一套快速、可靠并价格适宜的数据库管理工具,适用于三种平台:Windows、macOS及Linux。可以用来对本机或远程的MySQL、SQLServer、SQLite、...
- Linux系统安装SQL Server数据库(linux安装数据库命令)
-
一、官方说明...
- Navicat推出免费数据库管理软件Premium Lite
-
IT之家6月26日消息,Navicat推出一款免费的数据库管理开发工具——NavicatPremiumLite,针对入门级用户,支持基础的数据库管理和协同合作功能。▲Navicat...
- Docker安装部署Oracle/Sql Server
-
一、Docker安装Oracle12cOracle简介...
- Web性能的计算方式与优化方案(二)
-
通过前面《...
- 网络入侵检测系统之Suricata(十四)——匹配流程
-
其实规则的匹配流程和加载流程是强相关的,你如何组织规则那么就会采用该种数据结构去匹配,例如你用radixtree组织海量ip规则,那么匹配的时候也是采用bittest确定前缀节点,然后逐一左右子树...
- 使用deepseek写一个图片转换代码(deepnode处理图片)
-
写一个photoshop代码,要求:可以将文件夹里面的图片都处理成CMYK模式。软件版本:photoshop2022,然后生成的代码如下://Photoshop2022CMYK批量转换专业版脚...
- AI助力AUTOCAD,生成LSP插件(ai里面cad插件怎么使用)
-
以下是用AI生成的,用AUTOLISP语言编写的cad插件,分享给大家:一、将单线偏移为双线;;;;;;;;;;;;;;;;;;;;;;单线变双线...
- Core Audio音频基础概述(core 音乐)
-
1、CoreAudioCoreAudio提供了数字音频服务为iOS与OSX,它提供了一系列框架去处理音频....
- BlazorUI 组件库——反馈与弹层 (1)
-
组件是前端的基础。组件库也是前端框架的核心中的重点。组件库中有一个重要的板块:反馈与弹层!反馈与弹层在组件形态上,与Button、Input类等嵌入界面的组件有所不同,通常以层的形式出现。本篇文章...
- 怎样创建一个Xcode插件(xcode如何新建一个main.c)
-
译者:@yohunl译者注:原文使用的是xcode6.3.2,我翻译的时候,使用的是xcode7.2.1,经过验证,本部分中说的依然是有效的.在文中你可以学习到一系列的技能,非常值得一看.这些技能不单...
- 让SSL/TLS协议流行起来:深度解读SSL/TLS实现1
-
一前言SSL/TLS协议是网络安全通信的重要基石,本系列将简单介绍SSL/TLS协议,主要关注SSL/TLS协议的安全性,特别是SSL规范的正确实现。本系列的文章大体分为3个部分:SSL/TLS协...
- 社交软件开发6-客户端开发-ios端开发验证登陆部分
-
欢迎订阅我的头条号:一点热上一节说到,Android客户端的开发,主要是编写了,如何使用Androidstudio如何创建一个Android项目,已经使用gradle来加载第三方库,并且使用了异步...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 利用navicat将postgresql转为mysql
- Navicat的详细教程「偷偷收藏」(navicatlite)
- Linux系统安装SQL Server数据库(linux安装数据库命令)
- Navicat推出免费数据库管理软件Premium Lite
- Docker安装部署Oracle/Sql Server
- Docker安装MS SQL Server并使用Navicat远程连接
- Web性能的计算方式与优化方案(二)
- 网络入侵检测系统之Suricata(十四)——匹配流程
- 使用deepseek写一个图片转换代码(deepnode处理图片)
- AI助力AUTOCAD,生成LSP插件(ai里面cad插件怎么使用)
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)