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
相关推荐
kuroomi2 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
闲云自留地2 小时前
Containerd 进阶教程:命名空间 Namespace、私有仓库 Harbor、容器管理全流程
容器
闲云自留地5 小时前
Containerd 是什么?架构、插件与安装实践一次讲清
容器
闲云野鹤在人间7 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
闲云自留地8 小时前
告别敲命令!DockerUI 与 Portainer 可视化容器管理实战
docker·容器
wdfk_prog8 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
程序猿阿越9 小时前
containerd如何创建Pod
后端·kubernetes·源码阅读
安易算力12 小时前
昇腾生态开发深度实践:CANN算子库架构解析与MindSpore模型优化
网络·容器·架构·kubernetes·vllm
闲云自留地12 小时前
不用 docker!containerd 镜像 crctl 命令一把梭
容器
周先生FullStack13 小时前
Mac + 容器本地 MySQL/Redis 环境搭建与网络原理实战
java·spring boot·微服务·容器·架构·个人开发