五、安装 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 里需要创建:
1572488939288026667.jpeg
六、安装 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
复制代码
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
</sample_admin@mydomain.com>
复制代码
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 文件有五个文件:
在 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 处理完的数据最终根据相应的规则推送给相应的用户及平台等。
1572489152653045750.jpeg
十一、安装 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
复制代码
开源地址:
本文转载自宜信技术学院。
原文链接:http://college.creditease.cn/detail/316
评论