skywalking-kubernetes

该项目可以迅速将skywalking 6.1.0部署进kubernetes(k8s)

包含ui oap es模块和完整的springcloud测试用例

此外将agent整合到sidecar中,也就是说每个pod中有两个应用 app+agent sidecar,更加适合于生产环境

描述

我弄这个主要是为了学习整合skywalking作为kubernetes线下环境的APM

但是skywalking官方apache/skywalking-kubernetes的一些配置在apache孵化后过期 没有最新的6.1.0版本 而6.1.0的性能提升比较大,此外也支持6.3.2 非常值得学习。 此外一些配置面向云环境,不适合本地开发测试


安装使用

git地址 evanxuhe/skywalking-kubernetes cd 6.1.0

kubectl apply -f namespace.yml
kubectl apply -f elasticsearch
kubectl apply -f oap
kubectl apply -f ui
kubectl apply -f apm-springcloud-demo
复制代码

注意修改elasticsearch/01-pv.yml中的路径为本地路径;节点名为本机hostname

浏览器打开http://127.0.0.1:31234/查看服务详情

如果部署了测试用例 访问http://127.0.0.1:30082/item 会发现UI拓扑图多了两个服务 如下

成果展示

NAME                            READY   STATUS    RESTARTS   AGE
apm-eureka-799b8d5449-72npx     1/1     Running   0          99m
apm-item-bdf545d9c-kjqxd        1/1     Running   0          94m
elasticsearch-0                 1/1     Running   0          119m
oap-6b56f8bbf5-7fjvb            1/1     Running   0          118m
oap-6b56f8bbf5-7tldw            1/1     Running   0          118m
oap-6b56f8bbf5-qzdx2            1/1     Running   0          118m
ui-deployment-f4799496c-m5xw6   1/1     Running   0          117m
复制代码

模块概述

模块概述

component descripiton
namespace 创建skywalking命名空间
elasticsearch 映射本地磁盘卷的es集群
oap collector 收集agent上传的数据并整合
ui RocketUI展示前端数据
apm-springcloud-demo springcloud应用demo,eureka+item service 产生数据供展示(可选)
busybox.yml 装了很多调试工具,比如net-tools等,方便定位k8s内问题

版本描述

component version
kubernetes 1.14.2
docker 18.06
skywalking 6.1.0
elasticsearch 6.4.0

镜像

image version descripiton
evanxuhe/skywalking-oap-server 6.1.0 修正时区为东八区
evanxuhe/skywalking-agent-sidecar 6.1.0 sidecar 里面装载了agent文件夹
apache/skywalking-ui 6.1.0 官方ui镜像
elasticsearch-oss 6.3.2 官方es镜像

使用说明

应用全部挂在在skywalking namepace下,所以大家使用时不要忘记切换namespace 比如加-n skywalking

此外之前遇到过很奇怪的问题 oap可以正常收集数据,ui没显示,并且请求oap报错IDs can't be null其实就是pod时间不对,导致查询范围不匹配 查看kubectl get pods -n skywalking

配置修改

es使用statefulset方式部署,oap,ui使用deployment部署 因而想要修改副本数,内存,磁盘等请修改对应目录下的03-statefulset.yml或者03-deployment.yml

服务起停

由于k8s deployment会在pod停止后一直重启 因而修改停止的正确做法是

kubectl edit statefulset elasticsearch -n skywalking
kubectl edit deployment oap -n skywalking
kubectl edit deployment ui-deployment -n skywalking
复制代码

修改对应的replicates为0,拓展应用将replicates修改为对应副本数即可,想刷新配置也可以用这种办法


修改内容

基于skywalking官方apache/skywalking-kubernetes 修改为:

  • oap,ui镜像更新为最新 apache/skywalking-oap-server,apache/skywalking-ui镜像,解决原有镜像过期问题,修改时区为东八区
  • elasticsearch存储卷配置gce修改为local,增加01-pv.yaml 大家需要制定自己的本地路径
  • ui负载均衡从云环境loadbalace改为适用于本地的nodeport

故障排除

显示pod不存在 kubectl config set-context $(kubectl config current-context) --namespace=skywalking 或者在所有命令后指定namespace 如 kubectl get pods -n skywalking 服务出现Error 查看event是否有错误信息

kubectl describe pod [pod名]
复制代码

如果没有,说明进程已经挂掉,查看日志是否有错误信息

kubectl log [pod名]
复制代码

dns域名解析错误 遇到一个问题,es一直正常运行,但是oap报错找不到es,这是由于域名解析问题 k8s登录elasticsearch,查看hostname ip地址 登录另一个可用pod,如ui 看是否能ping 通ip(网络问题),能否ping通elasticsearch主机名(dns问题) 最后发现是coredns服务没能正常启动,导致所有dns不用这个错误很常见。。。

kubectl get pods -n kube-system
复制代码

解决方案详见coredns服务一直处于 CrashLoopBackOff状态

联系方式

欢迎大家查看我的博客评论交流

由于本人是k8s新人,难免存在很多问题,欢迎大家反馈 我的邮箱 xuhe@chehejia.com

转载于:https://juejin.im/post/5ce699bee51d45777621baec

全网最新 Skywalking 6.1.0部署进k8s 包含springcloud测试用例相关推荐

  1. iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享...

    ?? 微信小程序课程,面向所有具备前端基础知识的同学 ?? iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程 ...

  2. Zabbix 3.0 部署监控 [三]

    Zabbix 3.0 部署监控 [三] zabbix  时间:2016年9月22日  笔者QQ:381493251  Abcdocker交流群:454666672  如果遇到什么问题可以进群询问,我们 ...

  3. Debian 和Ubuntu Mono 3.0 部署包

    Mono 3.0 刚发布,Debian 的Mono打包工作也开始了, 这篇博客<Mono 3.0 Preview Packages for Debian and Ubuntu >讲述了De ...

  4. KubeEdge 1.3.0 部署

    本文介绍了如何在两台 ubuntu 16.04 64 bit 双核 CPU 虚拟机上从源码开始部署 KubeEdge 1.3.0 集群的过程,云端 Kubernetes 版本为 1.17.3,Gola ...

  5. KubeEdge 1.2.0 部署

    本文介绍了如何在两台 ubuntu 16.04 64 bit 双核 CPU 虚拟机上从源码开始部署 KubeEdge 1.2.0 集群的过程,云端 Kubernetes 版本为 1.17.3,Gola ...

  6. 全网最新Nginx禁止国内IP地址访问网站

    全网最新Nginx禁止国内IP地址访问网站 文章目录 全网最新Nginx禁止国内IP地址访问网站 1.服务器安装依赖 2.创建文件地址并下载所需服务 3.安装libmaxminddb 4.解压并且修改 ...

  7. Fabric2.0部署学习进阶教程系列博文

    Fabric2.0部署学习系列文章目录 1.<在本机上安装VMWare详细图文过程> https://blog.csdn.net/weixin_44750512/article/detai ...

  8. Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法

    Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法 参考文章: (1)Win2008上.NET4.0部署出错HTTP 错误 5 ...

  9. 【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略

    前段时间cocos2dx更新了最新版本cocos2d­2.0­x­2.0.2,也从这个版本开始对于资源加载与管理都改变了策略. 在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源 ...

最新文章

  1. SCCM部署(四)---ADSI修改
  2. GoldenGate技术架构(二)
  3. 【Java 并发编程】线程池机制 ( 线程池状态分析 | 线程池状态转换 | RUNNING | SHUTDOWN | STOP | TIDYING | TERMINATED )
  4. (剑指Offer)面试题18:树的子结构
  5. asm.js的陷阱1
  6. 《现代操作系统》第1章读书笔记-- 引论(未完成)
  7. 海通证券签约神策数据 数据赋能构建数字化运营闭环
  8. java collections读书笔记(4) stack
  9. IBASE Read buffer invalidate when locked
  10. 1117. H2O 生成
  11. mitmproxy抓包 | Python双篡改假请求实战(六)
  12. android 控件宽度自适应_Android中让图片自适应控件的大小的方法
  13. 如何在没有tomcat情况下直接连接JMX监控JVM
  14. 图说:Windows 8如何关机、重启
  15. swun 1766 我的悲剧不可能那么好数
  16. 信息系统分析与设计课程心得
  17. 【微信登录】APP/网站应用的微信扫码登录
  18. 惊帆健康监测模块,心率检测模块
  19. 软件工程人才的社会需求现状与发展趋势分析
  20. c语言 称重系统设计,智能称重系统设计-文献综述.doc

热门文章

  1. golang协程特点
  2. 一对多查询,合并成一条数据
  3. Hystrix使用Commond的三种方式
  4. python 一些方法的时间测试
  5. ElasticSearch插件安装
  6. 复合索引使用的先决条件
  7. mac OS X中升级php5.5至php5.6 or php7
  8. jenkins的使用
  9. solr学习之(七)_学习solr的理由(solr的特点和应用领域)
  10. [DiscuzNt]整合DiscuzNt论坛目前所发现的小BUG及个人简单解决办法