Skywalking的部署(k8s)及java接入

一、准备工作

官网下载链接Downloads | Apache SkyWalking

1.构建agent镜像,上传至镜像仓库

# Dockerfile
FROM busybox:latest 

ENV LANG=C.UTF-8

RUN set -eux && mkdir -p /usr/skywalking/agent/

ADD ./ /usr/skywalking/agent/

WORKDIR /

 2.oap和ui的镜像在hub仓库找对应的版本,然后搞到自己的私有仓库(过程省略....)也可以自己编译构建GitHub - apache/skywalking: APM, Application Performance Monitoring System

地址:

Docker Hubhttps://hub.docker.com/r/apache/skywalking-oap-serverDocker Hubhttps://hub.docker.com/r/apache/skywalking-ui

准备工具及安装包:

 registry.cn-hangzhou.aliyuncs.com/zj-test-k8s/skywalking:oap-8.5.0-es7   # docker官方镜像

registry.cn-hangzhou.aliyuncs.com/zj-test-k8s/skywalking:ui-8.5.0             # docker官方镜像

registry.cn-hangzhou.aliyuncs.com/zhongjunkeji/skywalking-agent:8.5.0     # 自己编译

elasticsearch 7.0以上作为存储

1.创建skywalking-oap

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: skywalking-oap
  name: skywalking-oap
  namespace: skywalking
spec:
  replicas: 1
  selector:
    matchLabels:
      app: skywalking-oap
  template:
    metadata:
      labels:
        app: skywalking-oap
    spec:
      initContainers:
        - image: registry.cn-hangzhou.aliyuncs.com/zhongjunkeji/skywalking-agent:8.2.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
      containers:
        - name: skywalking-oap
          image: registry.cn-hangzhou.aliyuncs.com/zj-test-k8s/skywalking:oap-8.5.0-es7
          imagePullPolicy: IfNotPresent
          
          ports:
            - containerPort: 12800
              name: http
              protocol: TCP
            - containerPort: 11800
              name: grpc
              protocol: TCP
          resources:
            limits:
              cpu: '2'
              memory: 2Gi
            requests:
              cpu: '1'
              memory: 2Gi
          volumeMounts:
            - mountPath: /etc/localtime
              name: volume-localtime
            - mountPath: /usr/skywalking/agent
              name: sw-agent
          env:
            - name: JAVA_OPTS
              value: "-Xmx3g -Xms3g"
            - name: SW_AGENT_NAME
              value: skywalking-oap
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              value: skywalking-oap.skywalking:11800 # FQDN: servicename.namespacename.svc.cluster.local
            - name: SW_STORAGE
              value: elasticsearch7
            - name: SW_NAMESPACE
              value: "skywalking"
            - name: SW_STORAGE_ES_CLUSTER_NODES
              value: es-cn-ndgdfghgfjdgyrtg.elasticsearch.aliyuncs.com:9200
            - name: SW_ES_USER
              value: "elastic"
            - name: SW_ES_PASSWORD
              value: "XXXXXXX"
            - name: SW_CORE_DATA_KEEPER_EXECUTE_PERIOD
              value: "25"
            - name: SW_CORE_TOPN_REPORT_PERIOD
              value: "60"
            - name: SW_STORAGE_ES_INDEX_REPLICAS_NUMBER
              value: "0"
            - name: SW_STORAGE_ES_FLUSH_INTERVAL
              value: "15"
            - name: SW_STORAGE_ES_BULK_ACTIONS
              value: "1500"
      volumes:
        - emptyDir: {}
          name: sw-agent
        - hostPath:
            path: /etc/localtime
            type: ''
          name: volume-localtime

---
apiVersion: v1
kind: Service
metadata:
  name: skywalking-oap
  namespace: skywalking
  labels:
    service: skywalking-oap
spec:
  type: ClusterIP
  ports:
    - name: http
      port: 12800
      protocol: TCP
      targetPort: 12800
    - name: grpc
      port: 11800
      protocol: TCP
      targetPort: 11800
  selector:
    app: skywalking-oap

2.创建skywalking-ui

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: skywalking-ui
  name: skywalking-ui
  namespace: skywalking
spec:
  replicas: 1
  selector:
    matchLabels:
      app: skywalking-ui
  template:
    metadata:
      labels:
        app: skywalking-ui
    spec:
      containers:
        - env:
            - name: SW_OAP_ADDRESS
              value: "skywalking-oap:12800"   # 注意修改成自己的oap地址(k8s-services:port)    
          image: registry.cn-hangzhou.aliyuncs.com/zj-test/skywalking:ui-8.5.0
          imagePullPolicy: IfNotPresent         
          name: skywalking-ui
          ports:
            - containerPort: 8080
              name: http
              protocol: TCP
          resources:
            limits:
              cpu: '2'
              memory: 1Gi
            requests:
              cpu: '1'
              memory: 1Gi
          volumeMounts:
            - mountPath: /etc/localtime
              name: volume-localtime
      volumes:
        - hostPath:
            path: /etc/localtime
            type: ''
          name: volume-localtime
---
apiVersion: v1
kind: Service
metadata:
  name: skywalking-ui
  namespace: skywalking
  labels:
    service: skywalking-ui
spec:
  ports:
    - port: 8080
      name: page
      nodePort: 31000
  type: NodePort
  selector:
    app: skywalking-ui
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: skywalking-ui-ingress
  namespace: skywalking
  annotations:
    nginx.ingress.kubernetes.io/service-weight: ""
spec:
  rules:
  - host: skywalking.xxxx.com   # 访问域名
    http:
      paths:
      - path:
        backend:
          serviceName: skywalking-ui
          servicePort: 8080
		path: /
		pathType: ImplementationSpecific

3.接入项目

apiVersion: apps/v1
kind: Deployment
metadata:
  name: smart
  namespace: production
spec:
  replicas: 1
  selector:
    matchLabels:
      app: smart
  template:
    metadata:
      labels:
        app: smart
    spec:
      initContainers:
        - image: registry.cn-hangzhou.aliyuncs.com/zhongjunkeji/skywalking-agent:8.2.0-pro
          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
      containers:
        - image: ${IMAGE}
          name: smart
          ports:
            - containerPort: 9534
              protocol: TCP
          readinessProbe: #就绪探针
            tcpSocket:
              port: 9534
            initialDelaySeconds: 5
            periodSeconds: 5
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: JAVA_TOOL_OPTIONS
              value: -javaagent:/usr/skywalking/agent/skywalking-agent.jar -XX:MaxRAMPercentage=75.0
            - name: SW_AGENT_NAME
              value: etc-data
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              value: skywalking-oap.default:11800 # FQDN: servicename.namespacename.svc.cluster.local
            - name: spring.profiles.active
              value: dev
            - name: logging.file
              value: /var/logs/smart.log
            - name: aliyun_logs_smart
              value: /var/logs/smart.log
          resources:
          #硬限制
            limits:
              cpu: 2
              memory: 3Gi
            #运行pod时请求的资源数量
            requests:
              cpu: 100m
              memory: 1Gi
          volumeMounts:
            - mountPath: /usr/skywalking/agent
              name: sw-agent
      volumes:
        - name: sw-agent
          emptyDir: {}

4.大功告成:访问skywalking地址  http://skywalking.xxxx.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想见感

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值