大家好,我是博哥爱运维。这节课我们继续来配置gitlab相关的服务。增加gitlab在k8s的内部解析为什么这么做呢,博哥这里总结了两点原因:优化gitlab网络通信,对于runner要调用gitlab服务来说,直接走内部地址速度更快如果是在用阿里云的同学,采用在k8s上部署gitlab的话,那么k8s内部服务比如runner是不能通过同集群前面的公网入口SLB来请求访问的,这里阿里云自身网络架构原因,这个时候我们只需要做如下配置即可完美解决# kubectl -n kube-system get configmaps coredns -o yaml apiVersion: v1 da...

大家好,我是博哥爱运维。这节课我们来讲gitlab里面的runner,gitlab的CI/CD自动化,都是由gitlab下发指令,依靠runner这个组件去执行的,我们这里也是把runner运行在k8s上面。runner按字面意思就是奔跑者的意思,它在整个自动化流程里面的角色也相当于一个外卖小哥,它接收gitlab下发的自动化指令,来去做相应的操作,从而实现整个CI/CD的效果。部署gitlab-runnerdocker# mkdir -p /nfs_dir/{gitlab-runner1-ver130806-docker,gitlab-runner2-ver130806-share}...

第15关 k8s架构师课程基于gitlab的CICD自动化二原创2021-04-06 20:17-博哥爱运维大家好,我是博哥爱运维。这节课我们先来部署gitlab私有代码仓库所需要的数据库postgresql和redis。需要注意的是,如果大家的nfs-server的地址和挂载目录不是按博哥前面课程讲得来定义的话,那么下面的yaml配置中需要记得替换。部署postgresql # ------------------------------------------------ # mkdir -p /nfs_dir/{gitlab_etc_ver130806,gitlab_log_ve...

prometheus发送报警大家好,我是博哥爱运维。早期我们经常用邮箱接收报警邮件,但是报警不及时,而且目前各云平台对邮件发送限制还比较严格,所以目前在生产中用得更为多的是基于webhook来转发报警内容到企业中用的聊天工具中,比如钉钉、企业微信、飞书等。prometheus的报警组件是Alertmanager,它支持自定义webhook的方式来接受它发出的报警,它发出的日志json字段比较多,我们需要根据需要接收的app来做相应的日志清洗转发这里博哥将用golang结合Gin网络框架来编写一个日志清洗转发工具,分别对这几种常用的报警方式作详细地说明及实战下载boge-webhook.z...

prometheus监控数据以及grafana配置持久化存储配置大家好,我是博哥爱运维。这节实战课给大家讲解下如果配置prometheus以及grafana的数据持久化。prometheus数据持久化配置 # 注意这下面的statefulset服务就是我们需要做数据持久化的地方 # kubectl -n monitoring get statefulset,pod|grep prometheus-k8s statefulset.apps/prometheus-k8s      2/2     5h41m pod/prometheus-k8s-0                      ...

使用prometheus来监控ingress-nginx大家好,我是博哥爱运维。我们前面部署过ingress-nginx,这个是整个K8s上所有服务的流量入口组件很关键,因此把它的metrics指标收集到prometheus来做好相关监控至关重要,因为前面ingress-nginx服务是以daemonset形式部署的,并且映射了自己的端口到宿主机上,那么我可以直接用pod运行NODE上的IP来看下metricscurl 10.0.1.201:10254/metrics创建 servicemonitor配置让prometheus能发现ingress-nginx的metrics# vim s...

服务监控大家好,我是博哥爱运维。对于运维开发人员来说,不管是哪个平台服务,监控都是非常关键重要的。在传统服务里面,我们通常会到zabbix、open-falcon、netdata来做服务的监控,但对于目前主流的K8s平台来说,由于服务pod会被调度到任何机器上运行,且pod挂掉后会被自动重启,并且我们也需要有更好的自动服务发现功能来实现服务报警的自动接入,实现更高效的运维报警,这里我们需要用到K8s的监控实现Prometheus,它是基于Google内部监控系统的开源实现。Prometheus架构图Prometheus是由golang语言编写,这样它的部署实际上是比较简单的,就一个服务的...

在k8s上部署服务一直都是用的dockerhub上的公有镜像,对于企业服务来说,有些我们是不想把服务镜像放在公网上面的; 同时如果在有内部的镜像仓库,那拉取镜像的速度就会很快,这时候就需要我们来部署公司内部的私有镜像仓库了,这里博哥会使用我们最常用的harbor来部署我们内部的私有镜像仓库。harbor官方文档:https://goharbor.io/docs/2.2.0/harbor内部架构图harbor在我们这次课程的最终一关的位置如图所示:在生产中安装一般有两种方式,一种是用docker-compose启动官方打包好的离线安装包; 二上用helm chart的形式在k8s上来运行h...