目录
- 概述
- 资源下载
- 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总结。