viva
  • 主页
  • 开发
    • IDE环境
      • Vim
      • VSCode
        • code-server
        • theia
    • Golang手册
    • Ansible
    • SaltStack
      • salt-api
    • Python
      • Q&A
      • Hello,world!
      • 类型
        • 数字
        • 字符串
        • 列表
        • 元组
        • 集合
        • 字典
      • 语法
        • 流程控制
        • 循环
      • 工具
        • pip
        • pyenv
        • selenium
      • 示例
    • Shell
    • Vue
      • ant-design
      • vue-material
    • Java
  • 随笔
    • WSL2
    • Git
    • Markdown
      • mermaid
    • Linux
      • 时钟同步
      • 账号
      • 文件
      • SSH
      • systemd
      • TLS加密
        • Openssl
      • 存储
        • rsync
        • NFS
      • 路由
      • 日志采集
        • Journalctl
        • Fluentd
          • 根据字段匹配对日志进行结构化
        • Logstash
    • 虚拟化
      • Hyper-V
      • PXE
    • 命令行工具
      • zsh
    • Nexus3
    • 堡垒机
      • JumpServer
    • 测试工具
      • ioping
      • apache bench
      • dd
      • postman
    • 开源项目管理
      • Github
    • 软件包管理
    • 网络镜像源
    • 网关
      • Nginx
  • 存储
    • Ceph
      • 安装
      • 故障处理
    • Etcd
    • Mysql
  • 网络
    • Overlay网络
    • IPVS
    • 网络工具
      • tshark
      • tcpdump
    • 防火墙
      • nftables
      • firewalld
      • iptables
    • 域名解析
      • dig
      • nslookup
      • dnsmasq
    • 代理
      • Clash
      • Redsocks
      • Redsocks2
      • COW
      • Proxfier
  • 云原生
    • 容器
      • Docker
        • Dockerfile
        • docker-compose
      • Podman
      • 原理
        • Chroot
        • Namespace
        • Cgroup
    • 镜像仓库
      • Harbor
    • Kubernetes
      • 部署
        • Kind
        • Minikube
        • kubespray
      • CNI
        • Flannel
        • OVS
        • Calico
      • Operator
        • OperatorSDK
      • StorageClass
      • Q&A
    • Openshift
      • 集群部署
      • 快速使用
    • Prometheus
      • prometheus-operator
      • kube-prometheus
      • Thanos
        • 组件
          • Bucket
          • Check
          • Compact
          • Querier
          • Receiver
          • Ruler
          • Sidecar
          • Store
        • 参考资料
      • Cortex
        • 组件
          • Alertmanager
          • Config
          • Distributor
          • Ingester
          • Querier
          • Query Frontend
          • Ruler
        • 参考资料
      • Thanos与Cortex方案对比
      • 参考资料
      • Q&A
    • Skywalking
    • Rook
    • Helm
    • Istio
    • 应用部署
      • Nexus
      • RabbitMQ
    • 参考资料
  • DevOps
    • 开源DevOps平台
    • CICD
      • Jenkins
    • 参考资料
  • 机器学习
    • Kubeflow
      • 示例
由 GitBook 提供支持
在本页
  • 项目地址
  • 官方网站
  • 快速上手
  1. 云原生

Skywalking

上一页Q&A下一页Rook

最后更新于2年前

项目地址

官方网站

快速上手

部署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 框架已实现了中间件层的适配,代码接入过程如下:

GitHub - apache/skywalking: APM, Application Performance Monitoring SystemGitHub
Apache SkyWalkingskywalking.apache.org
skywalkingGolang 学习手册
Logo
Logo
Logo