k8s搭建鏈路監控:skywalking


skywalking架構及簡介

官網:https://github.com/apache/skywalking

 

簡介

Java, .NET Core, NodeJS, PHP, and Python auto-instrument agents.
Go and C++ SDKs.
LUA agent especially for Nginx, OpenResty and Apache APISIX.
Browser agent.
Service Mesh Observability. Control panel and data panel.
Metrics system, including Prometheus, OpenTelemetry, Spring Sleuth(Micrometer), Zabbix.
Logs.
Zipkin v1/v2 trace.(No Analysis)

 

編寫OAP和UI資源文件

其中,使用的鏡像:

apache/skywalking-oap-server:8.6.0-es7

apache/skywalking-ui:8.6.0
 
apiVersion: v1
kind: Service
metadata:
  name: ui
  namespace: skywalking
  labels:
    service: ui
spec:
  ports:
  - port: 8080
    name: page
    nodePort: 30123
  selector:
    app: ui
  type: NodePort

 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ui-deployment
  namespace: skywalking
  labels:
    app: ui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ui
  template:
    metadata:
      labels:
        app: ui
    spec:
      containers:
      - name: ui
        image: 192.168.117.160/apache/skywalking-ui:8.6.0
        imagePullPolicy: IfNotPresent
        ports:
          - name: page
            containerPort: 8080
        env:
          - name: SW_OAP_ADDRESS
            value: oap:12800

  

 

部署OAP和UI

創建名稱空間:kubectl create ns skywalking

查看名稱空間:kubectl get ns

 

 

應用資源文件:kubectl apply -f .
 
看名稱空間下所有資源:kubectl get all -n skywalking

 

可以看日志是否正常(端口是否ok):kubectl logs pod/oap-9d459674b-8vndj -n skywalking

 

使用skywalking agent

這里,我們不修改服務鏡像,通過共享volumes的方式,使agent能被服務鏡像訪問並使用

下載鏡像:skywalking-agent-sidecar:v1.0

推送到本地鏡像倉庫

資源yaml文件中,添加初始化容器

      initContainers:
      - image: 192.168.117.160/skywalking/skywalking-agent-sidecar:v1.0
        name: sw-agent-sidecar
        imagePullPolicy: IfNotPresent
        command: ["sh"]
        args:
          [
            "-c",
            "mkdir -p /skywalking/agent && cp -r /usr/skywalking/agent/* /skywalking/agent",
          ]
        volumeMounts:
        - mountPath: /skywalking/agent
          name: sw-agent

 

資源yaml文件中,服務容器添加環境變量和volumeMounts

 env:
        - name: JAVA_OPTS
          value: -javaagent:/usr/skywalking/agent/skywalking-agent.jar

 

volumeMounts:
        - mountPath: /usr/skywalking/agent
          name: sw-agent

 

部署服務,這樣,服務啟動的時候,就會加上上面的變量

進入容器:kubectl exec -it product-78fcbdfd6b-mv2hl -n mm -- sh

可以看到,服務容器的目錄下有skywalking-agent.jar

 

top查看進程

 

訪問

 

 

 

skywalking更多使用

詳見:https://www.cnblogs.com/uncleyong/p/15752370.html

 

【性能項目實戰:jmeter+k8s+微服務+skywalking+efk】匯總

詳見:https://www.cnblogs.com/uncleyong/p/15475614.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM