Skywalking

项目地址

官方网站

快速上手

部署skywalking

环境准备:

  • k8s(配置默认storageclass)

  • helm

1、安装skywalking

export REPO=skywalking
export SKYWALKING_RELEASE_NAME=skywalking
export SKYWALKING_RELEASE_NAMESPACE=skywalking

kubectl create ns ${SKYWALKING_RELEASE_NAMESPACE}
helm upgrade "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" --install

2、配置 skywalking-ui 与 skywalking-oap(如果需要从外部接入)服务 nodeport

apiVersion: v1
kind: Service
metadata:
  name: skywalking-ui-out
  namespace: skywalking
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 31000
  selector:
    app: skywalking
    component: ui
    release: skywalking
  sessionAffinity: None
  type: NodePort
apiVersion: v1
kind: Service
metadata:
  name: skywalking-oap-out
  namespace: skywalking
spec:
  ports:
  - name: grpc
    port: 11800
    protocol: TCP
    targetPort: 11800
    nodePort: 31001
  selector:
    app: skywalking
    component: oap
    release: skywalking
  sessionAffinity: None
  type: NodePort

3、可通过http://<ip>:31000端口访问skywalking控制台,外部服务链路数据上报可通过http://<ip>:31001

部署skywalking-swck

1、下载 skywalking operator 源码

wget https://github.com/apache/skywalking-swck/archive/refs/tags/v0.6.1.tar.gz
tar zxvf v0.6.1.tar.gz && cd v0.6.1

2、编译构建 skywalking operator 并推送到代码仓库

# 安装 operator 代码生成工具
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0
# 编译镜像
make -C operator docker-build

# 推送镜像至私有仓库
export OPERATOR_IMG=<私有仓库地>/skywalking/controller:v0.6.1
docker tag controller:latest ${OPERATOR_IMG}
docker push ${OPERATOR_IMG}

3、部署 skywalking operator 并创建crds

# 部署 operator
make -C operator deploy

# 部署 crds 资源
make -C operator install

Java端接入

1、为目标容器组所在的命名空间添加标签,表示该命名空间可以使用 skywalking sidecar 自动注入

kubectl label ns <目标命名空间> swck-injection=enabled

2、为待注入的容器组资源添加注解配置

...
metadata:
  annotations:
    # 设置 java agent 镜像名
    sidecar.skywalking.apache.org/initcontainer.Image: "docker.io/apache/skywalking-java-agent:8.8.0-java8"
  labels:
    # 设置启用 java agent 注入
    swck-java-agent-injected: "true"
spec:
  ...
  containers:
  - ...
    env:
    - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
      value: skywalking-oap.skywalking:11800
    - name: SW_AGENT_NAME
      value: <当前容器组服务注册名称>
  ...
...

3、访问 skywalking-ui 控制台,从普通服务中可查询到已注册的服务

Golang 端接入

当前 golang 仅支持通过代码集成方式接入 skywalking,其中 go-gin 框架已实现了中间件层的适配,代码接入过程如下:

最后更新于