部署后端
一:安装 Helm
由于 SkyWalking 官方提供 Helm 的安装方式,因此我们需要先安装 Helm。
SSH 登录可以执行 kubectl 的节点服务器。
Helm官方提供如下一键安装命令
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
但由于墙的问题,可能无法访问。因此可以本地通过下面的地址直接下载 helm 二进制文件,地址:https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz,解压缩后,将 helm 二进制文件移动到 bin 目录下。
mv linux-amd64/helm /usr/local/bin/helm
- 确认可以执行 helm 命令即可。
二:添加 Helm 仓库
参考下列命令,先设置环境变量,然后添加 skywalking 的helm 官方仓库。
export SKYWALKING_RELEASE_NAME=skywalking
export SKYWALKING_RELEASE_NAMESPACE=ops-share
export REPO=skywalking
helm repo add ${REPO} https://apache.jfrog.io/artifactory/skywalking-helm
三:修改配置文件并安装
- 下载 skywalking-kubernetes 安装文件。
https://github.com/apache/skywalking-kubernetes
- 修改
chart/skywalking/values-my-es.yaml
文件,参考下列内容进行修改。
oap:
image:
tag: 8.8.1
storageType: elasticsearch
ui:
image:
tag: 8.8.1
elasticsearch:
enabled: false
config: # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false
host: es-external-svc
port:
http: 9200
user: "elastic" # [optional]
password: "********" # [optional]
- 保存后,返回 chart 目录,执行下面的命令进行安装。
helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" -f ./skywalking/values-my-es.yaml
- 执行下面的命令,检查 skywalking 的安装进度。
helm list -n ops-share
image.png
- 确认 skywalking 安装成功。
四:创建 ingress
在 ack 控制台,创建 ingress。
image.png
五:增加访问限制
由于 skywalking 新版本不支持 Dashboard 访问增加账户密码,因此需要自行通过 nginx 的 access auth 来实现,过程如下:
通过在线工具,生成访问的账户和密码。
-
复制生成的加密内容,在 ack 控制台的 保密字典 中创建 Secret。
image.png -
编辑上文中创建的 ingress,参考下面的注解进行配置。
image.png
Agent 注入
不同的编程语言,注入方式不同,不同的启动方式,注入方式也不同
Tomcat & Java
一:下载 Agent 包
由于我们大多是 Java 程序,所以从 Github 下载 Java Agent。使用的是 V8.8.0版本的。
下载后,上传至 OSS,后续在 Dockerfile 中可直接使用。
二:更新 Dockerfile
主要是增加从 OSS 下载并解压到 /skywalking
目录,记录解压后删除,减小镜像大小。
FROM tomcat:8.5.73-jdk8
RUN mkdir /usr/local/tomcat/webapps/pdos-admin
COPY pdos-admin/target/*.war /usr/local/tomcat/webapps/pdos-admin
RUN cd /usr/local/tomcat/webapps/pdos-admin && jar -xvf *.war \
&& mkdir /skywalking && cd /skywalking \
&& wget https://xxxx.oss-cn-hangzhou.aliyuncs.com/skywalking/skywalking-agent.tar \
&& tar xvf skywalking-agent.tar \
&& rm -rf /usr/local/tomcat/webapps/pdos-admin/*.war \
&& rm -rf /skywalking/skywalking-agent.tar
WORKDIR /usr/local/tomcat
三:Deployment 上增加相关配置
需要在 Deployment 上增加下列配置:
环境变量
# Tomcat 启动时添加的重要参数
- name: CATALINA_OPTS
value: >-
-javaagent:/skywalking/skywalking-agent/skywalking-agent.jar
# 指定客户端分组和名称,规则为[Project-ENV]::[Service]
- name: SW_AGENT_NAME
value: Group_Name::App_Name
# 指定 SkyWalking 后端,此处以公网地址为例,如果是 ACK 集群内,可使用内网地址
- name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
value: skywalking-oap.xxx.com:443
# 强制 Agent 使用 TLS 协议,否则会出现报错
- name: SW_AGENT_FORCE_TLS
value: 'true'
- Group_Name::App_Name 自定义
- skywalking-oap.xxx.com:443 根据实际环境填写
外置存储卷
SkyWalking 会生成日志,将日志外置,避免容器越来越大。
- name: uploadfile
mountPath: /skywalking/skywalking-agent/logs
subPath: logs
结果验证
确认通过 ingress 中设置的域名可以正常访问 skywalking 后台,并且首次访问会弹出登录框。
image.png
输入正确的账户密码后,可以正常访问到后台即可。
image.png