K8S运维知识汇总
就叫一片白纸
话不多说就是干
展开
-
【K8S运维知识汇总】第7天6:部署alertmanager(监控告警)
文章目录准备基础镜像准备资源配置清单应用资源配置清单告警配置在末尾添加,关联告警规则准备基础镜像[root@k8s7-200.host.com /opt/src]# docker pull docker.io/prom/alertmanager:v0.14.0[root@k8s7-200.host.com /opt/src]# docker tag 30594e96cbe8 harbor.od.com/infra/alertmanager:v0.19.0[root@k8s7-200.host.c.原创 2020-10-31 21:42:22 · 957 阅读 · 0 评论 -
【K8S运维知识汇总】第7天5:部署Grafana
文章目录准备基础镜像准备资源配置清单DNS解析应用资源配置清单浏览器验证安装插件k8s-app插件时钟插件 Clock Pannel饼图插件 Pie ChartD3 GaugeDiscrete插件检查插件接入普罗米修斯部分展示准备基础镜像https://hub.docker.com/r/grafana/grafanahttps://github.com/grafana/grafanahttps://grafana.com/[root@k8s7-200.host.com /opt/src]# d.原创 2020-10-29 22:32:52 · 756 阅读 · 0 评论 -
【K8S运维知识汇总】第7天4:prometheus监控业务容器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录traefik重启podblackbox*traefik监控traefik-ingress-controller注意:在traefik的pod控制器上加annotations,并重启pod,监控生效配置范例:"annotations": { "prometheus_io_scheme": "traefik", "prometheus_io_path": "/metrics", "prometheus_io_原创 2020-10-28 23:45:19 · 350 阅读 · 0 评论 -
【K8S运维知识汇总】第7天3:安装部署prometheus-server
文章目录准备prometheus镜像准备资源配置清单准备Prometheus相关配置DNS解析应用资源配置清单浏览器访问验证准备prometheus镜像https://hub.docker.com/r/prom/prometheushttps://github.com/prometheus/prometheus[root@k8s7-200.host.com /opt/src]# docker image tag 7317640d555e harbor.od.com/infra/prometheu.原创 2020-10-28 23:41:44 · 275 阅读 · 2 评论 -
【K8S运维知识汇总】第7天2:交付Exporters至k8s集群
文章目录交付kube-state-metrics准备基础镜像准备资源配置清单应用资源配置清单检查验证交付node-exporter准备基础镜像准备资源配置清单应用资源配置清单检查验证交付cadvisor准备基础镜像准备资源配置清单修改运算节点软连接应用资源配置清单检查验证交付blackbox-exporter准备基础镜像准备资源配置清单应用资源配置清单DNS解析检查验证交付kube-state-metrics准备基础镜像kube-state-metrics官方quay.io地址 https://q.原创 2020-10-23 23:56:31 · 465 阅读 · 0 评论 -
【K8S运维知识汇总】第7天1:Prometheus监控软件概述
文章目录概述Promethus特点Prometheus架构Prometheus Server指标采集服务发现告警管理图形化展示常用的几个Exporter与Zabbix对比概述Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kub.原创 2020-10-22 22:03:48 · 412 阅读 · 2 评论 -
【K8S运维知识汇总】第6天8:实战使用apollo分环境管理dubbo服务
文章目录zk环境拆分为test和prod环境namespace 分环境,创建test 和prod数据库进行拆分,因实验资源有限,故使用分库的形式模拟分环境分别创建修改两个环境的资源配置文件:cm.yaml 修改ns,数据库库名,eureka地址dp.yamlsvc.yamlingress.yaml接下来部署apollo-adminservicecm.yamldp.yaml接下来部署prod环境的apollo-configservice,还是一样的套路cm.yamldp.yamlsvc.yamlingres.原创 2020-10-17 22:48:23 · 296 阅读 · 0 评论 -
【K8S运维知识汇总】第6天7:dubbo服务消费者连接Apollo
文章目录创建项目新增配置[zk1]发布Jenkins 持续构建修改资源配置清单应用资源配置清单查看pod日志验证demo创建项目新增配置[zk1]发布Jenkins 持续构建修改资源配置清单[root@k8s7-200.host.com /data/k8s-yaml/dubbo-demo-consume]# cat deployment.yamlkind: DeploymentapiVersion: extensions/v1beta1metadata: name: d.原创 2020-10-14 00:03:36 · 391 阅读 · 0 评论 -
【K8S运维知识汇总】第6天6:dubbo服务提供者连接Apollo
文章目录添加配置发布Jenkins老头进行CI修改资源配置清单应用资源配置清单查看Pod日志查看链接信息测试修改重启pod修改配置为zk2并改回20880添加配置发布Jenkins老头进行CI验证是否构建成功???修改资源配置清单[root@k8s7-200.host.com /data/k8s-yaml/dubbo-server]# cat deployment.yamlkind: DeploymentapiVersion: extensions/v1beta1metad.原创 2020-10-13 23:58:26 · 1038 阅读 · 0 评论 -
【K8S运维知识汇总】第6天5: 交付Apollo-portal至k8s集群
文章目录下载安装包执行数据库脚本更新start.sh脚本编写dockerfile准备资源配置清单DNS解析应用资源配置清单查看验证浏览器访问阿菠萝创建项目下载安装包下载官方release包:https://github.com/ctripcorp/apollo/releases/download/v1.5.1/apollo-portal-1.5.1-github.zip执行数据库脚本1.创建相关目录[root@k8s7-200.host.com /opt/src]# mkdir -p /dat.原创 2020-10-11 21:36:31 · 431 阅读 · 0 评论 -
【K8S运维知识汇总】第6天4:交付Apollo-adminservice至k8s集群
文章目录下载安装包制作adminservice镜像准备资源配置清单应用资源配置清单dashboard查看验证查看pod日志浏览器访问验证下载安装包下载官方release包: https://github.com/ctripcorp/apollo/releases/download/v1.3.0/apollo-adminservice-1.5.1-github.zip制作adminservice镜像1.创建相关目录[root@k8s7-200.host.com /opt/src]# mkdir -原创 2020-09-26 23:48:25 · 373 阅读 · 0 评论 -
【K8S运维知识汇总】第6天3:交付Apollo-configservice至k8s集群
文章目录下载安装包执行数据库脚本DNS解析优化脚本制作Config Service镜像准备资源配置清单应用资源配置清单查看日志浏览器访问configservice连接sql解析下载安装包下载官方release包:https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-configservice-1.7.0-github.zip执行数据库脚本数据库脚本地址:https://raw.githubusercontent.c.原创 2020-09-26 23:45:18 · 529 阅读 · 0 评论 -
【K8S运维知识汇总】第6天2:微服务架构之阿菠萝(Apollo)介绍
文章目录Apollo 介绍Apollo 架构简化模型基础模型:Apollo 介绍阿菠萝官网地址:https://github.com/ctripcorp/apolloApollo(阿菠萝)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apollo支持4个维度管理Key-Value格式的配置:Namespace(名称空间)、Cluster(集群)、Environment(环境)、Applicatio原创 2020-09-20 23:39:37 · 415 阅读 · 0 评论 -
【K8S运维知识汇总】第6天1:微服务架构之配置中心选型
文章目录运维八荣八耻配置中心概述使用ConfigMap管理应用配置环境更改准备资源配置清单(dubbo-monitor)查看资源信息切换生产环境验证启动dubbo-service陈述式资源管理方法创建configmap运维八荣八耻配置中心概述配置其实是独立于程序的可配变量,同一份程序在不同配置下会有不同的行为,常见的配置有连接字符串,应用配置和业务配置等。配置有多种形态,下面是一些常见的:程序内部hardcode,这种做法是反模式,一般我们不建议!配置文件,比如Spring应用程序的配置一原创 2020-09-20 23:27:03 · 2471 阅读 · 0 评论 -
【K8S运维知识汇总】第5天7:实战dubbo集群的日常维护
停止可以优雅地停止,可以都执行完了退出,再让pod停止如果把service缩容成4个不会立刻变成1pod生命周期有prestop,在停止之前,还可以做一些事情,写shell脚本,相当于一个钩子,可以优雅停止自己,最后在zk里把自己删除k8s作为容器编排框架,都pod定义的还是比较完善的生命周期,还有init可以修改consumer,迭代这个功能直接commitcommit以后会产生一个commitid拷贝这个commitid,拷贝8位即可再用jenkins构建这是新构建的原创 2020-09-07 22:03:54 · 474 阅读 · 0 评论 -
【K8S运维知识汇总】第5天6:交付dubbo服务的消费者集群到K8S
把dubbo服务的提供者和monitor都交付给k8s里了下面交付dubbo服务的消费者,需要借助Jenkins的持续集成这一条流水线,可以构建dubbo服务的提供者又可以用来构建dubbo服务的消费者构建dubbo服务的消费者consumer,消费者是要用到ssh公钥,因为要去和git链接public是consumer,private是web如果要去拖dubbo-demo-web的项目的时候,需要用ssh通道暂且用master分支,-e -q输出的就少开始构建了**先 gi原创 2020-09-07 21:57:03 · 428 阅读 · 0 评论 -
【K8S运维知识汇总】第5天5:交付dubbo-monitor到K8S集群
现在镜像构建出来了已经到harbor里了,发到k8s集群里了发到k8s集群里,就需要资源配置清单,dubbo服务的提供者只需要一个deveploment类型的pod控制器提供者最后可以在日志里看到dubbo服务端已经启动交付了以后,zk有dubbo节点需要一个zk的页面,这个页面就叫做监控者,方便查看哪些已经注册,哪些没注册monitor就是个取数据用来展示,dubbo里的monitor有两个软件做的比较好dubbo-admin,dubbo-monitor交付dubbo-monito原创 2020-09-06 22:40:51 · 473 阅读 · 0 评论 -
【K8S运维知识汇总】第5天4: 借助BlueOcean插件回顾Jenkins流水线构建原理
交付了jenkins到k8s集群,安装blue ocean插件这几步都已经有了**第一步pull代码,克隆代码到jenkins_home/workspace/dubbo_demo_service/1**就是把代码克隆到这里然后做一个checkout,指定的代码第二步编译代码第三步打包第四步做docker镜像write file to workspace就是写dockerfiledockerfile位置这个dockerfile是由jenkins自己pipeline.原创 2020-09-06 22:04:49 · 488 阅读 · 0 评论 -
【K8S运维知识汇总】第5天3: 使用Jenkins进行持续构建交付dubo服务的提供者
让docker在执行的时候执行entrypoint.sh,这是一个shell脚本,docker进程在执行这个shell脚本的话,会给脚本分配一个pid,这个pid是1,docker应该是维持一个pid等于1 的进程,一定在前台运行,生命周期在running状态如果不用exec直接在shell脚本里写,java -jar,shell脚本就退出了,pid=1进程就退出了,切不到java进程,docker容器就退出了,docker容器就从running变成exited这是shell脚本的知识,如果写了exe原创 2020-08-27 22:20:07 · 503 阅读 · 0 评论 -
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作
build jenkins,实际要get docker,要用到国外的源,所以build的时候要失败很多次,实在不行就直接用软件包,这就是一个docker镜像这是已经把get docker整合进去了这样存到harbor里,再去build就快了load到docker引擎里,一层层加载,aufs找到这个images,就需要打一个标签,push到仓库修改dockerfile到infra仓库里就是build不过去,只能采用这种方法只需要把底包加载进来,然后,12,3,4,5,6,原创 2020-08-23 11:17:43 · 588 阅读 · 0 评论 -
【K8S运维知识汇总】第5天1:二进制安装maven
下面要安装 部署maven,是用来编译java程序,maven是阿帕奇基金会开源的一般jdk1.7,用maven 3选择编译好的,选择清华大学的源这些都是已经归档的binaries二进制包jdk版本指的是jenkins里的jdk版本看一下版本看一下版本先把目录创建出来把那一层取消要对maven做初始化配置,源设置成国内的,这样拉jar包就直接在阿里云里拉了可以在jenkins _home里可以安装你想要的工具docker镜像就是挂载了宿主机上原创 2020-08-16 00:41:51 · 617 阅读 · 0 评论 -
【K8S运维知识汇总】第4天11:安装部署jenkins
要把Jenkins部署到k8s集群里现在长期维护版本是2.190.3架构图里的jenkins是要部署到k8s里的到运维主机做这个事情traefik其实和宿主机用的同一个网络名称空间,才能把81端口映射出来push到harbor仓库里官方的jenkins镜像不能直接使用,做一定配置才能启用要自定义一个dockerfile,要对官方的jenkins镜像做一次改变官方的镜像起的时候 不是用root,而是普通用户,run就是把docker里的时区改成了东8区,要做一对ssh秘原创 2020-08-01 21:23:01 · 631 阅读 · 0 评论 -
【K8S运维知识汇总】第4天10:部署zk集群
实验架构第一步先部署zookeeper需要三台主机跑zk应该下载tar.gz二进制包创建/usr/java,解压到usr/java要设置环境变量现在11上环境就有了安装12上的jdk环境21这台主机也顺便做下11,12,21都在src里,要去安装zookeeper软件,也是用二进制方法去部署zookeeper本身是阿帕奇基金会开源的,tar.gz就是二进制包解压到opt下,制作软连接https://img-blog.c原创 2020-07-27 22:11:31 · 362 阅读 · 0 评论 -
【K8S运维知识汇总】第4天9:实战交付dubbo服务到K8S集群、开场
现在把nginx的流量调度恢复4层的也进行恢复两台nginx上跑了一个keepalive,把另外一台也配置上把配置黏贴过来这样nginx也都好了完全是用traefik-ingress控制器来对流量进行分发,也就是ingress的资源就是一个可视化的nginx把容器删了,自己会钻到21上了dashboard现在就一个副本,想要2个就会给你起来一个,这样就很方便对容器横向扩容小人输入dashboard.od.com,流量是从笔记本浏览器经过dns解析到vip 10.原创 2020-07-26 23:11:25 · 469 阅读 · 0 评论 -
【K8S运维知识汇总】第4天8:K8S集群平滑升级技巧
现在版本是1.15.4,,太高了可以回退版本两个节点都是1.15.4,升级k8s的时候,要在流量低谷的时候做现在集群了有不少pod,因为scheduler帮你去做平衡,先去升级21先把node从k8s集群里摘出来就剩一个节点了原来在21上的coredns就跑到22节点上了coredns完全没受影响,尽管从一个节点到了另外一个节点,这就是容器编排的特性做的好一点,就把11上的nginx,把21的upstream注释掉7层的负载均衡也注释掉现在上1.15.4回退到1.1原创 2020-07-22 23:18:46 · 570 阅读 · 0 评论 -
【K8S运维知识汇总】第4天7: dashboard小彩蛋–heapster
dashboard 也有小插件,dashboard本身是k8s的插件,但是dashboard本身也有个插件,现在heapster地位比较尴尬,只能称为菜单是dashboard下面的一个小插件quay.io和dockerhub都是仓库打镜像,push到harbor里deployment就是用heapster起来的pod控制器serivce创建一个service account,名字叫heapster,在kube-system名称空间里,rolebinding到一个默认的集群角色,s原创 2020-07-21 22:44:52 · 348 阅读 · 0 评论 -
【K8S运维知识汇总】第4天6:dashboard分权举例
dashboard可以用令牌的方式进行登陆用令牌登陆就需要kubectl describe secret,获得这个令牌实际上是kubernetes-dashboard-admin这个service account 服务账号产生的一个服务账号一定是对应唯一的服务账号的secret,secret秘密配置kubernetes-dashboard-admin这个service account 服务账号产生的,这个服务账号里就有令牌复制出来令牌复制到这里来登陆就获得了kubernetes-das原创 2020-07-20 22:18:40 · 420 阅读 · 1 评论 -
【K8S运维知识汇总】第4天5:k8s仪表盘鉴权方式详解
现在去创建证书,要去运维主机原创 2020-07-18 22:33:17 · 395 阅读 · 0 评论 -
【K8S运维知识汇总】第4天4:rbac原理详解
kube-system下实例了两个deployment,核心资源,一个是coredns,一个是dashboardtraefik在daemonset里,两个pod控制器需要掌握,daemonset,deployment这里使用json格式来展示的yamlspec就是真正定义pod控制器的属性,selector就是标签选择器,下面就是定义一个template模版,实际上是pod的模版,pod的一些特性就被定义到了pod控制器里,pod资源本身是一组对象,启动参数,内容,挂载,存活性探针都可以定义原创 2020-07-18 16:42:33 · 755 阅读 · 2 评论 -
【K8S运维知识汇总】第4天3:dashboar插件安装
dashboard是k8s的可视化管理平台,是三种管理k8s集群方法之一首先下载镜像上传到我们的私有仓库中:hdss7-200# docker pull k8scn/kubernetes-dashboard-amd64:v1.8.3# docker tag fcac9aa03fd6 harbor.od.com/public/dashboard:v1.8.3# docker push harbor.od.com/public/dashboard:v1.8.3编辑dashboard资源配置清单:1原创 2020-07-18 11:22:13 · 432 阅读 · 0 评论 -
【K8S运维知识汇总】第4天2:前情回顾
原创 2020-07-15 21:45:38 · 203 阅读 · 0 评论 -
【K8S运维知识汇总】第4天1:关于k8s证书
前情回顾:关于k8s证书注:证书更换时,同时需要重新生成新的Kubeconfig文件原创 2020-07-12 22:30:30 · 379 阅读 · 0 评论 -
【K8S运维知识汇总】第3天8:k8s服务暴露之ingress
上一章我们测试了在集群内部解析service名称,下面我们测试在集群外部解析:根本解析不到,因为我们外部用的dns是10.4.7.11,也就是我们的自建bind dns,这个DNS服务器上也没有响应的搜索域。如何能让集群外部访问nginx-dp?这里有两种服务暴露方式:修改工作模式,在kube-proxy中修改,并重启1、使用nodeport方式,但是这种方式不能使用ipvs,只能使用iptables,iptables只能使用rr调度方式。原理相当于端口映射,将容器内的端口映射到宿主机上的某个.原创 2020-07-12 11:39:50 · 802 阅读 · 0 评论 -
【K8S运维知识汇总】第3天7:nodeport型service
原创 2020-07-09 22:15:38 · 249 阅读 · 0 评论 -
【K8S运维知识汇总】第3天6:安装部署coredns
在运维主机上(10.4.7.200)准备Coredns镜像文件,以docker镜像文件的方式部署到Kubernetes集群中去。下载coredns镜像[root@hdss7-200 ~]# docker pull coredns/coredns:1.6.9[root@hdss7-200 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED ..原创 2020-07-07 23:31:56 · 2081 阅读 · 3 评论 -
【K8S运维知识汇总】第3天5:Flannel之SNAT规划优化
flannel之SNAT规则优化的目的是由于在K8S中的容器内,访问不同宿主机中的容器的资源的时候,日志文件会记录为宿主机的IP地址,而不是记录为容器本身自己的IP地址,建议在不同的宿主机上的容器互访的时候,在日志文件中查询到的IP地址均为容器的真实的IP地址。如下图所示,是为宿主机或进入宿主机的容器中进行curl访问另外node节点的容器,都会被记录成宿主机的IP地址,这样就会导致不同宿主机的容器互访,会经过一次SNAT转换,而实际上,不同宿主机容器之间的访问,应该会被记录为容器的实际IP地址而非宿主机的原创 2020-07-03 11:52:17 · 1068 阅读 · 0 评论 -
【K8S运维知识汇总】第3天4:详解flanneld工作原理
flanneld实际上只是在宿主机上的路由表中添加了静态路由来完成通信[root@hdss7-21 ~]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 10.4.7.254 0.0.0.0 UG 100 0 0 ens3310.4.7.0 .原创 2020-07-03 09:42:37 · 988 阅读 · 0 评论 -
【K8S运维知识汇总】第3天3:flanneld安装部署详解
安装flanneld[root@hdss7-22 ~]# cd /opt/src/[root@hdss7-22 src]# rz[root@hdss7-21 src]# ll总用量 452336-rw-r--r-- 1 root root 9850227 6月 22 21:16 etcd-v3.1.20-linux-amd64.tar.gz-rw-r--r-- 1 root root 9565743 6月 22 20:24 flannel-v0.11.0-linux-amd64.原创 2020-07-02 12:04:49 · 1369 阅读 · 0 评论 -
【K8S运维知识汇总】第3天2:kubectl详解——声明式资源管理方法
通过陈述式创建的pod资源,获得统一配置清单[root@hdss7-21 ~]# kubectl get pods nginx-dp-5dfc689474-bqk8w -o yaml -n kube-publicapiVersion: v1kind: Podmetadata: creationTimestamp: "2020-07-01T12:19:34Z" generateName: nginx-dp-5dfc689474- labels: app: nginx-dp .原创 2020-07-01 21:24:10 · 641 阅读 · 0 评论 -
【K8S运维知识汇总】第3天1:kubectl详解——陈述式资源管理方法(deployment资源、service资源)
查看名称空间:[root@hdss7-21 ~]# kubectl get namespace # 等同于kubectl get nsNAME STATUS AGEdefault Active 3d22hkube-node-lease Active 3d22hkube-public Active 3d22hkube-system Active 3d22h查看defalut名称空间下的所有资源:..原创 2020-07-01 10:44:35 · 1489 阅读 · 0 评论