在K8S集群中部署SkyWalking

news2024/12/23 3:57:05

1. 环境准备

  • K8S 集群
  • kubectl
  • helm

2. 为什么要部署SkyWalking?

我也不道啊,老板说要咱就得上啊。咦,好像可以看到服务的各项指标,像SLA,Apdex这些,主要是能够进行请求的链路追踪,bug排查的利器。

总之就是不管三七二十一,先整上去。

3. 部署

部署其实很简单,参考这个仓库的内容

https://github.com/apache/skywalking-helm

3.1 准备配置文件:

oap:
  image:
    tag: 9.7.0
  storageType: elasticsearch
  replicas: 1
  env: 
    SW_CORE_RECORD_DATA_TTL: "10" # 设置记录数据的保留时间
    SW_CORE_METRICS_DATA_TTL: "10" # 经过聚合处理的指标数据的保留时间
    SW_TELEMETRY: "prometheus"
    SW_HEALTH_CHECKER: "default"
    SW_ENABLE_UPDATE_UI_TEMPLATE: "true"
  readinessProbe: 
    tcpSocket:
      port: 12800
    initialDelaySeconds: 50
    periodSeconds: 10
    failureThreshold: 30
  resources:
    requests:
      memory: 2.6Gi

ui:
  image:
    tag: 9.7.0

elasticsearch:
  enabled: true
  replicas: 1
  minimumMasterNodes: 1
  nodeGroup: "single-node"
  persistence: 
    enabled: true
  initResources:
    requests:
      memory: 1.5Gi
  clusterHealthCheckParams: "wait_for_status=yellow&timeout=1s"
  volumeClaimTemplate:
    accessModes: [ "ReadWriteOnce" ]
    storageClassName: ebs-hdd
    resources:
      requests:
        storage: 512Gi

本来我的Skywalking版本是 9.6.0 但是有个bug,Endpoints 页面如果涉及的Endpoint过多就会报错 后面我升级了 9.7.0 版本。

底层的存储组件使用 单节点ES,存储卷我用的是hdd的,因为是测试的,就省着用。对性能有要求的同学可以使用多节点,挂载SSD类型的磁盘。

注意调整这两个参数,SW_CORE_RECORD_DATA_TTL和SW_CORE_METRICS_DATA_TTL。

我使用机械盘,保持10天的数据就到顶了。如果这个值加大,会比较慢。这个根据自己的需求来确定。

3.2 开始部署

# helm chat 的版本
export SKYWALKING_RELEASE_VERSION=4.5.0
# helm 的 release name
export SKYWALKING_RELEASE_NAME=skywalking
# k8s 的命名空间
export SKYWALKING_RELEASE_NAMESPACE=skywalking

# 部署
helm install "${SKYWALKING_RELEASE_NAME}" \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version "${SKYWALKING_RELEASE_VERSION}" \
  -n "${SKYWALKING_RELEASE_NAMESPACE}" -f ./values-my-es.yaml

执行需要一些时间,完成后可以在K8S中看到

ES 的 Stateful Sets
image.png

SkyWalking 的 Deployments
image.png

3.3 更新

修改配置文件时,需要更新 对应的 helm release


export HELM_EXPERIMENTAL_OCI=1
export SKYWALKING_RELEASE_VERSION=4.5.0

helm upgrade -f ./values-my-es.yaml "skywalking" oci://registry-1.docker.io/apache/skywalking-helm --version "${SKYWALKING_RELEASE_VERSION}" -n skywalking

4. 项目集成

接入采用initContainer无侵入方式在K8s集成,原理是共享磁盘。

4.1 增加挂载点

- name: skywalking-agent
  emptyDir: {}

4.2 创建initContainer

initContainers:
- name: agent-container
      image: apache/skywalking-java-agent:9.1.0-alpine
      imagePullPolicy: IfNotPresent
      volumeMounts:
      - name: skywalking-agent
      mountPath: /agent
      command: [ "/bin/sh" ]
      args: [ "-c", "cp -R /skywalking/agent /agent/" ]
- name: skywalking-agent
      emptyDir: {}

4.3 Container 增加skywalking的配置

containers:  
- name: <example-name>
  image: <image>
  ports:
  - containerPort: <port>
  env:
  - name: VA_OPTS
    value: "-Dfile.encoding=utf-8 -Duser.timezone=UTC"
  - name: JAVA_TOOL_OPTIONS
    value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
  - name: SW_AGENT_NAMESPACE
    value: "dev"
  - name: SW_AGENT_NAME
    value: "dev::example-name"
  - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
    value: "skywalking-skywalking-helm-oap.skywalking.svc.cluster.local:11800"
    
volumeMounts:
- name: skywalking-agent
  mountPath: /skywalking

这样配置之后,启动 deployment 时,会先初始化一个 initContainer,然后在启动核心的 container pod。

image.png

完美

Ref

apache/skywalking-helm: Apache SkyWalking Kubernetes Deployment Helm Chart (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1490042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C向C++的一个过渡

思维导图 输入输出&#xff0c;以及基础头文件 在c语言中我们常用scanf("%d",&n);和printf("%d\n",n);来输出一些变量和常量&#xff0c;在C中我们可以用cin;和cout;来表示输入输出。 在C语言中输入输出有头文件&#xff0c;在C也有头文件&#xff0…

解放人力,提升品质:码垛输送机的工业应用与价值

在现代工业生产中&#xff0c;码垛输送机已成为许多企业自动化生产线上的关键设备。它不仅可以提高生产效率&#xff0c;降低人力成本&#xff0c;还能确保产品质量&#xff0c;并为企业带来许多其他方面的实际好处。 1. 提高生产效率&#xff1a; 快速码垛&#xff1a;码垛输…

蓝桥杯练习题——dp

五部曲&#xff08;代码随想录&#xff09; 1.确定 dp 数组以及下标含义 2.确定递推公式 3.确定 dp 数组初始化 4.确定遍历顺序 5.debug 入门题 1.斐波那契数 思路 1.f[i]&#xff1a;第 i 个数的值 2.f[i] f[i - 1] f[i - 2] 3.f[0] 0, f[1] 1 4.顺序遍历 5.记得特判 …

基于springboot+vue的医院药品管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚&#xff0c;后面开发是不需要再新建工程的&#xff0c;一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行&#xff0c;只要前…

Linux系统部署Discuz论坛并发布至公网随时随地可远程访问

目录 ​编辑 前言 1.安装基础环境 2.一键部署Discuz 3.安装cpolar工具 4.配置域名访问Discuz 5.固定域名公网地址 6.配置Discuz论坛 结语 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊Linux系统部署Discuz论坛并发布至公网随时随地…

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发&#xff0c;首先从做一款播放器开始是比较合理的&#xff0c;每一章节&#xff0c;我都会将源码贴在最后&#xff0c;此专栏你将学习到以下内容&#xff1a; 1&#xff09;音视频的解封装、解码&#xff1b; 2&#xff09;Qtopengl如何渲染视频&#…

matlab 提取分割位于多边形区域边缘内部或边缘上的点

[in,on] = inpolygon(xq,yq,xv,yv) xv 和 yv 为定义的多边形区域的,如xv = [1 4 4 1 1 ];yv = [1 1 4 4 1 ];注意最后一个数字与第一个重复,保证多边形闭合; xq 和 yq 为待查询的点in:在多边形内部和边缘的点序号on:仅在多边形边缘的点序号 提取分割方法: matrix=[xq yq…

Hystrix的一些了解

Hystrix如何实现容错 Hystrix是一个延迟和容错库&#xff0c;旨在隔离远程系统&#xff0c;服务和第三方库的访问点&#xff0c;当出现故障是不可避 免的故障时&#xff0c;停止级联故障并在复杂的分布式系统中实现弹性。 通常对于使用微服务架构开发的系统&#xff0c;涉及到…

12. Nginx进阶-Location

简介 Nginx的三大区块 在Nginx中主要配置包括三个区块&#xff0c;结构如下&#xff1a; http { #协议级别include /etc/nginx/mime.types;default_type application/octet-stream;log_format main $remote_addr - $remote_user [$time_local] "$r…

13-Java代理模式 ( Proxy Pattern )

Java代理模式 摘要实现范例 代理模式&#xff08;Proxy Pattern&#xff09;使用一个类代表另一个类的功能 代理模式创建具有现有对象的对象&#xff0c;以便向外界提供功能接口 代理模式属于结构型模式 摘要 1. 意图 为其他对象提供一种代理以控制对这个对象的访问2. 主…

游戏引擎用什么语言开发上层应用

现在主流的游戏引擎包括&#xff1a; 1、Unity3D&#xff0c;C#语言&#xff0c;优点在于支持几乎所有平台 丹麦创立的一家公司&#xff0c;现已被微软收购。在中国市场占有率最高&#xff0c;也是社群很强大&#xff0c;一般解决方案也能在网上找到&#xff0c;教程丰富。物理…

springboot项目单纯使用nacos注册中心功能

Spring Boot 项目完全可以单独使用 Nacos 作为注册中心。Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它支持服务的注册与发现&#xff0c;能够与 Spring Boot 应用无缝集成&#xff0c;为微服务架构提供了强大的支持。 在使用 Nacos 作为注册中…

eclipse搭建java web项目

准备条件 eclipsejdk1.8 &#xff08;配置jdk环境&#xff09;apache-tomcat-8.5.97&#xff08;记住安装位置&#xff09; 一 点击完成 开始创建javaweb项目 import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.s…

java VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城 小程序商城搭建

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

3.1_2024ctf青少年比赛部分web题

php后门 根据x-powered-by知道php的版本 该版本存在漏洞&#xff1a; PHP 8.1.0-dev 开发版本后门 根据报错信息&#xff0c;进行提示&#xff0c;前 GET / HTTP/1.1 Host: challenge.qsnctf.com:31639 User-Agentt:12345678system(cat /flag);var_dump(2*3);zerodium12345678…

二维码门楼牌管理系统技术服务:安装要求详解

文章目录 前言一、安装要求二、系统功能与应用三、总结与展望 前言 在信息化时代的浪潮下&#xff0c;二维码技术的应用已经深入到了我们生活的方方面面。其中&#xff0c;二维码门楼牌管理系统的出现&#xff0c;不仅提高了社区管理的效率&#xff0c;还为居民带来了极大的便…

tomcat优化、nginx +tomcat 部署 (三)

在目前流行的互联网架构中&#xff0c;Tomcat在目前的网络编程中是举足轻重的&#xff0c;由于Tomcat的运行依赖于JVM&#xff0c;从虚拟机的角度把Tomcat的调整分为外部环境调优 JVM 和 Tomcat 自身调优两部分 Tomcat 是一个流行的开源 Java 服务器&#xff0c;用于托管 Java …

Web前端---表格和表单

1.表格概述 表格标记&#xff1a;<table></table> 表格标题标记&#xff1a;<caption></caption> 表头&#xff1a;<th></th>------heading 行标记&#xff1a;<tr></tr>-----r是row 列标记&#xff1a;<td></t…

javaWebssh水利综合信息管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh水利综合信息管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCA…