SkyWalking部署-K8S

一、安装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: oap
  namespace: skywalking
spec:
  replicas: 1
  selector:
    matchLabels:
      app: oap
      release: skywalking
  template:
    metadata:
      labels:
        app: oap
        release: skywalking
    spec:
      nodeSelector:
       nodetype: wedesign
      containers:
        - name: oap
          image: apache/skywalking-oap-server:6.6.0-es6
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 11800
              name: grpc
            - containerPort: 12800
              name: rest
---
apiVersion: v1
kind: Service
metadata:
  name: oap
  namespace: skywalking
  labels:
    service: oap
spec:
  ports:
    - port: 12800
      name: rest
    - port: 11800
      name: grpc
  selector:
    app: oap
kubectl apply -f skywalking-oap.yml

2.4.skywalking-ui.yml

复制代码
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:
      nodeSelector:
       nodetype: wedesign
      containers:
        - name: ui
          image: apache/skywalking-ui:6.6.0
          ports:
            - containerPort: 8080
              name: page
          env:
            - name: SW_OAP_ADDRESS
              value: oap:12800
---
apiVersion: v1
kind: Service
metadata:
  name: ui
  namespace: skywalking
  labels:
    service: ui
spec:
  ports:
    - port: 8080
      name: page
      nodePort: 31008
  type: NodePort
  selector:
    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: web
  replicas: 1
  template:
    metadata:
      labels:
        app: web
    spec:
      initContainers:
        - image: spring2go/skywalking-agent-sidecar:6.6.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: web
          image: spring2go/spring-petclinic-web-app:1.0.0.RELEASE
          env:
            - name: JAVA_OPTS
              value: -javaagent:/usr/skywalking/agent/skywalking-agent.jar
            - name: SW_AGENT_NAME
              value: petclinic-web
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              value: oap.skywalking:11800 # FQDN: servicename.namespacename.svc.cluster.local
            - name: SERVER_PORT
              value: "8080"
            - name: VISITS_SERVICE_ENDPOINT
              value: http://visits:8080
            - name: CUSTOMERS_SERVICE_ENDPOINT
              value: http://customers:8080
          volumeMounts:
            - mountPath: /usr/skywalking/agent
              name: sw-agent
      volumes:
        - name: sw-agent
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: web
  labels:
    svc: web
spec:
  selector:
    app: web
  ports:
    - name: http
      port: 8080
      targetPort: 8080
  type: 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
相关推荐
万里侯2 小时前
GitOps 2026年演进趋势:从配置管理到环境即代码的范式转移及Pull vs Push模型的再思考
微服务·容器·k8s
acd120092 小时前
一次线上OOM排查实录:从jmap到代码重构,我踩过的坑全在这了
容器·重构·kubernetes
吕海洋3 小时前
目前可用的docker源2026.08
运维·docker·容器
gsls2008085 小时前
Penpot Docker 部署与 MCP 服务配置文档
运维·docker·容器·原型·penpot
天蓝不会忘记026 小时前
k8s集群部署的方法原理
云原生·容器·kubernetes
红球yyds7 小时前
用anisble搭建k8s集群及原理
云原生·容器·kubernetes
Thneonl10 小时前
让恢复动作敢按下去:dry-run、审批门、自动回滚与 mutable twin
rust·kubernetes
艾伦_耶格宇10 小时前
【DOCKER容器实战】-2MySQL
运维·docker·容器
To_OC20 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
ltl1 天前
mTLS 工程实践:服务间双向认证怎么落地
kubernetes