目錄
- 概述
- 資源下載
- Skywalking功能介紹
- 成果速覽
- 實踐
- rbac
- oap
- oap-svc
- ui
- ui-svc
- 結束
概述
?? k8s
離線安裝安裝 skywalking9.4
版本,環境:k8s版本為:1.27.x 、spring boot 2.7.x spring cloud :2021.0.5 、spring.cloud.alibab:2021.0.4.0 、jkd: 1.8
完整的整合視頻測試:k8s整合gitlab使用芋道做微服務的cicd
- 探針 基于不同的來源可能是不一樣的, 但作用都是收集數據, 將數據格式化為 SkyWalking 適用的格式.
- 平臺后端, 支持數據聚合,
數據分析
以及驅動數據流從探針到用戶界面的流程。分析包括 Skywalking 原生追蹤和性能指標以及第三方來源,包括 Istio 及 Envoy telemetry , Zipkin 追蹤格式化等。 你甚至可以使用Observability Analysis Language
對原生度量指標 和用于擴展度量的計量系統
自定義聚合分析。 - 存儲 通過開放的插件化的接口存放 SkyWalking 數據. 你可以選擇一個既有的存儲系統, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以選擇自己實現一個存儲系統. 當然, 我們非常歡迎你貢獻新的存儲系統實現。
- UI 一個基于接口高度定制化的Web系統,用戶可以可視化查看和管理 SkyWalking 數據。
資源下載
鏡像可以自己準備,懶人速遞:skywalking-oap-server-9.4離線鏡像可安裝版本 skywalking-ui-9.4離線鏡像安裝版本 busybox鏡像離線安裝包stable-musl版本
Skywalking功能介紹
- 多種監控手段,可以通過語言探針和service mesh獲得監控的數據
- 支持多重語言的自動探針,包括JAVA, .NET Core和NodeJS
- 輕量高效,無需大數據平臺和大量的服務器資源
- 模塊化,UI ,存儲,集群管理都有多種機制可選
- 支持告警
- 優秀的可視化解決方案
成果速覽
9.4版本的功能還是很強大的,如下圖所示。
實踐
rbac
# vim rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:labels:app: skywalkingname: skywalking-oapnamespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: skywalkingnamespace: defaultlabels:app: skywalking
rules:
- apiGroups: [""]resources: ["pods", "endpoints", "services", "nodes"]verbs: ["get", "watch", "list"]
- apiGroups: ["extensions"]resources: ["deployments", "replicasets"]verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: skywalkingnamespace: defaultlabels:app: skywalking
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: skywalking
subjects:
- kind: ServiceAccountname: skywalking-oapnamespace: default
oap
# vim dp.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: oapname: oapnamespace: default
spec:replicas: 1selector:matchLabels:app: oaptemplate:metadata:labels:app: oapspec:serviceAccountName: skywalking-oap# affinity:# nodeAffinity:# requiredDuringSchedulingIgnoredDuringExecution:# nodeSelectorTerms:# - matchExpressions:# - key: app1# operator: In# values:# - skywalking# initContainers:# - name: wait-for-elasticsearch# image: harbor.easzlab.io.local:8443/library/busybox:stable-musl# imagePullPolicy: IfNotPresent# command: ['sh', '-c', 'for i in $(seq 1 60); do nc -z -w3 elasticsearch.default.svc.cluster.local 9200 && exit 0 || sleep 5; done; exit 1']containers:- name: oapimage: harbor.easzlab.io.local:8443/library/skywalking-oap-server:9.4.0imagePullPolicy: IfNotPresentlivenessProbe:tcpSocket:port: 12800initialDelaySeconds: 15periodSeconds: 20readinessProbe:tcpSocket:port: 12800initialDelaySeconds: 15periodSeconds: 20ports:- containerPort: 11800name: grpc- containerPort: 1234name: prometheus-port- containerPort: 12800name: restenv:- name: JAVA_OPTSvalue: "-Dmode=init-only -Xmx2g -Xms2g"- name: TZ # 設置時區value: Asia/Shanghai- name: SW_OTEL_RECEIVERvalue: "default"- name: SW_ENABLE_UPDATE_UI_TEMPLATE # 開啟試圖可編輯,默認為:falsevalue: "true"- name: SW_CLUSTERvalue: kubernetes- name: SW_CLUSTER_K8S_NAMESPACEvalue: "default"- name: SW_CLUSTER_K8S_LABELvalue: "app=oap"- name: SKYWALKING_COLLECTOR_UIDvalueFrom:fieldRef:fieldPath: metadata.uid- name: SW_STORAGE # 使用es作為存儲value: elasticsearch- name: SW_STORAGE_ES_CLUSTER_NODES # es地址value: "elasticsearch.default.svc.cluster.local:9200"# - name: SW_ES_USER # es用戶# value: "elastic"# - name: SW_ES_PASSWORD # es密碼# value: "admin123"- name: SW_TELEMETRYvalue: "prometheus"
oap-svc
apiVersion: v1
kind: Service
metadata:name: oap-svcnamespace: defaultlabels:app: oap
spec:type: ClusterIPports:- port: 11800name: grpc- port: 1234name: prometheus-port- port: 12800name: restselector:app: oap
ui
# vim ui-dp.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:name: uinamespace: defaultlabels:app: ui
spec:replicas: 1selector:matchLabels:app: uitemplate:metadata:labels:app: uispec:# affinity:containers:- name: uiimage: harbor.easzlab.io.local:8443/library/skywalking-ui:9.4.0imagePullPolicy: IfNotPresentports:- containerPort: 8080name: pageenv:- name: SW_OAP_ADDRESSvalue: http://oap-svc:12800 # 根據oap的svc一致
ui-svc
# vim ui-svc.yaml
---
apiVersion: v1
kind: Service
metadata:labels:app: uiname: ui-svcnamespace: default
spec:type: ClusterIPports:- port: 80targetPort: 8080protocol: TCPselector:app: ui
結束
k8s離線安裝安裝skywalking9.4總結。