一、安装K8S集群
kubeadm部署K8s集群V1.19.0
二、部署skywalking
2.1.创建命名空间
kubectl create ns skywalking
2.2.给节点打标签
kubectl label node 节点名 nodetype=wedesign
2.3.skywalking-oap.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: oapnamespace: skywalking
spec:replicas: 1selector:matchLabels:app: oaprelease: skywalkingtemplate:metadata:labels:app: oaprelease: skywalkingspec:nodeSelector:nodetype: wedesigncontainers:- name: oapimage: apache/skywalking-oap-server:6.6.0-es6imagePullPolicy: IfNotPresentports:- containerPort: 11800name: grpc- containerPort: 12800name: rest
---
apiVersion: v1
kind: Service
metadata:name: oapnamespace: skywalkinglabels:service: oap
spec:ports:- port: 12800name: rest- port: 11800name: grpcselector:app: oap
kubectl apply -f skywalking-oap.yml
2.4.skywalking-ui.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: ui-deploymentnamespace: skywalkinglabels:app: ui
spec:replicas: 1selector:matchLabels:app: uitemplate:metadata:labels:app: uispec:nodeSelector:nodetype: wedesigncontainers:- name: uiimage: apache/skywalking-ui:6.6.0ports:- containerPort: 8080name: pageenv:- name: SW_OAP_ADDRESSvalue: oap:12800
---
apiVersion: v1
kind: Service
metadata:name: uinamespace: skywalkinglabels:service: ui
spec:ports:- port: 8080name: pagenodePort: 31008type: NodePortselector:app: ui
kubectl apply -f skywalking-ui.yml
2.5.访问
http://NodeIP:31008
三、sidecar 模式挂载 agent
参考文章:https://skywalking.apache.org/zh/blog/2019-08-30-how-to-use-Skywalking-Agent.html
四、微服务对接skywalking
apiVersion: apps/v1
kind: Deployment
metadata:name: web
spec:selector:matchLabels:app: webreplicas: 1template:metadata:labels:app: webspec:initContainers:- image: spring2go/skywalking-agent-sidecar:6.6.0name: sw-agent-sidecarimagePullPolicy: IfNotPresentcommand: ["sh"]args:["-c","mkdir -p /skywalking/agent && cp -r /usr/skywalking/agent/* /skywalking/agent",]volumeMounts:- mountPath: /skywalking/agentname: sw-agentcontainers:- name: webimage: spring2go/spring-petclinic-web-app:1.0.0.RELEASEenv:- name: JAVA_OPTSvalue: -javaagent:/usr/skywalking/agent/skywalking-agent.jar- name: SW_AGENT_NAMEvalue: petclinic-web- name: SW_AGENT_COLLECTOR_BACKEND_SERVICESvalue: oap.skywalking:11800 # FQDN: servicename.namespacename.svc.cluster.local- name: SERVER_PORTvalue: "8080"- name: VISITS_SERVICE_ENDPOINTvalue: http://visits:8080- name: CUSTOMERS_SERVICE_ENDPOINTvalue: http://customers:8080volumeMounts:- mountPath: /usr/skywalking/agentname: sw-agentvolumes:- name: sw-agentemptyDir: {}
---
apiVersion: v1
kind: Service
metadata:name: weblabels:svc: web
spec:selector:app: webports:- name: httpport: 8080targetPort: 8080type: ClusterIP
注意:在java启动jar包时需要在java后面添加${JAVA_OPTS}变量,如java ${JAVA_OPTS} -jar /opt/app.jar;如果不是用root用户启动java程序【例如devops】,还需要修改/usr/skywalking目录的所有者为devops
chown -R devops.devops /usr/skywalking