全网最新 Skywalking 6.1.0部署进k8s 包含springcloud测试用例
skywalking-kubernetes
該項(xiàng)目可以迅速將skywalking 6.1.0部署進(jìn)kubernetes(k8s)
包含ui oap es模塊和完整的springcloud測(cè)試用例
此外將agent整合到sidecar中,也就是說(shuō)每個(gè)pod中有兩個(gè)應(yīng)用 app+agent sidecar,更加適合于生產(chǎn)環(huán)境
描述
我弄這個(gè)主要是為了學(xué)習(xí)整合skywalking作為kubernetes線下環(huán)境的APM
但是skywalking官方apache/skywalking-kubernetes的一些配置在apache孵化后過(guò)期 沒(méi)有最新的6.1.0版本 而6.1.0的性能提升比較大,此外也支持6.3.2 非常值得學(xué)習(xí)。 此外一些配置面向云環(huán)境,不適合本地開(kāi)發(fā)測(cè)試
安裝使用
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 復(fù)制代碼注意修改elasticsearch/01-pv.yml中的路徑為本地路徑;節(jié)點(diǎn)名為本機(jī)hostname
瀏覽器打開(kāi)http://127.0.0.1:31234/查看服務(wù)詳情
如果部署了測(cè)試用例 訪問(wèn)http://127.0.0.1:30082/item 會(huì)發(fā)現(xiàn)UI拓?fù)鋱D多了兩個(gè)服務(wù) 如下
成果展示
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 復(fù)制代碼模塊概述
模塊概述
| namespace | 創(chuàng)建skywalking命名空間 |
| elasticsearch | 映射本地磁盤(pán)卷的es集群 |
| oap | collector 收集agent上傳的數(shù)據(jù)并整合 |
| ui | RocketUI展示前端數(shù)據(jù) |
| apm-springcloud-demo | springcloud應(yīng)用demo,eureka+item service 產(chǎn)生數(shù)據(jù)供展示(可選) |
| busybox.yml | 裝了很多調(diào)試工具,比如net-tools等,方便定位k8s內(nèi)問(wèn)題 |
版本描述
| kubernetes | 1.14.2 |
| docker | 18.06 |
| skywalking | 6.1.0 |
| elasticsearch | 6.4.0 |
鏡像
| evanxuhe/skywalking-oap-server | 6.1.0 | 修正時(shí)區(qū)為東八區(qū) |
| evanxuhe/skywalking-agent-sidecar | 6.1.0 | sidecar 里面裝載了agent文件夾 |
| apache/skywalking-ui | 6.1.0 | 官方ui鏡像 |
| elasticsearch-oss | 6.3.2 | 官方es鏡像 |
使用說(shuō)明
應(yīng)用全部掛在在skywalking namepace下,所以大家使用時(shí)不要忘記切換namespace 比如加-n skywalking
此外之前遇到過(guò)很奇怪的問(wèn)題 oap可以正常收集數(shù)據(jù),ui沒(méi)顯示,并且請(qǐng)求oap報(bào)錯(cuò)IDs can't be null其實(shí)就是pod時(shí)間不對(duì),導(dǎo)致查詢(xún)范圍不匹配 查看kubectl get pods -n skywalking
配置修改
es使用statefulset方式部署,oap,ui使用deployment部署 因而想要修改副本數(shù),內(nèi)存,磁盤(pán)等請(qǐng)修改對(duì)應(yīng)目錄下的03-statefulset.yml或者03-deployment.yml
服務(wù)起停
由于k8s deployment會(huì)在pod停止后一直重啟 因而修改停止的正確做法是
kubectl edit statefulset elasticsearch -n skywalking kubectl edit deployment oap -n skywalking kubectl edit deployment ui-deployment -n skywalking 復(fù)制代碼修改對(duì)應(yīng)的replicates為0,拓展應(yīng)用將replicates修改為對(duì)應(yīng)副本數(shù)即可,想刷新配置也可以用這種辦法
修改內(nèi)容
基于skywalking官方apache/skywalking-kubernetes 修改為:
- oap,ui鏡像更新為最新 apache/skywalking-oap-server,apache/skywalking-ui鏡像,解決原有鏡像過(guò)期問(wèn)題,修改時(shí)區(qū)為東八區(qū)
- elasticsearch存儲(chǔ)卷配置gce修改為local,增加01-pv.yaml 大家需要制定自己的本地路徑
- ui負(fù)載均衡從云環(huán)境loadbalace改為適用于本地的nodeport
故障排除
顯示pod不存在 kubectl config set-context $(kubectl config current-context) --namespace=skywalking 或者在所有命令后指定namespace 如 kubectl get pods -n skywalking 服務(wù)出現(xiàn)Error 查看event是否有錯(cuò)誤信息
kubectl describe pod [pod名] 復(fù)制代碼如果沒(méi)有,說(shuō)明進(jìn)程已經(jīng)掛掉,查看日志是否有錯(cuò)誤信息
kubectl log [pod名] 復(fù)制代碼dns域名解析錯(cuò)誤 遇到一個(gè)問(wèn)題,es一直正常運(yùn)行,但是oap報(bào)錯(cuò)找不到es,這是由于域名解析問(wèn)題 k8s登錄elasticsearch,查看hostname ip地址 登錄另一個(gè)可用pod,如ui 看是否能ping 通ip(網(wǎng)絡(luò)問(wèn)題),能否ping通elasticsearch主機(jī)名(dns問(wèn)題) 最后發(fā)現(xiàn)是coredns服務(wù)沒(méi)能正常啟動(dòng),導(dǎo)致所有dns不用這個(gè)錯(cuò)誤很常見(jiàn)。。。
kubectl get pods -n kube-system 復(fù)制代碼解決方案詳見(jiàn)coredns服務(wù)一直處于 CrashLoopBackOff狀態(tài)
聯(lián)系方式
歡迎大家查看我的博客評(píng)論交流
由于本人是k8s新人,難免存在很多問(wèn)題,歡迎大家反饋 我的郵箱 xuhe@chehejia.com
轉(zhuǎn)載于:https://juejin.im/post/5ce699bee51d45777621baec
總結(jié)
以上是生活随笔為你收集整理的全网最新 Skywalking 6.1.0部署进k8s 包含springcloud测试用例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自定义注解-aop实现日志记录
- 下一篇: 全局异常捕获处理-@Controller