skywalking监控容器化应用
随着容器化和k8s的日益增多,skywalking监控容器化应用也成为趋势,skywalking也支持三种方式对容器化应用进行监控,如下详细描述三种方式:

- 使用官方提供的基础镜像: 使用官方原生镜像:FROMapache/skywalking-java-agent:8.5.0-jdk8直接使用CMD或启动Java应用程序ENTRYPOINT,不需要关心启用SkyWalking代理的Java选项,它会被自动采用。
- 将agent包构建到已经存在的基础镜像中: 将agent包构建到已经存在的基础镜像中,提供这种方式的原因是:官方的镜像属于精简镜像,并且是openjdk,可能很多命令没有,需要自己二次安装。
- sidecar模式挂在agent: 如果微服务是直接部署在Kubernetes集群,那么采用sidecar模式来使用SkyWalkingAgent会更加方便。因为这种方式不需要修改原来的基础镜像,也不需要重新构建新的服务镜像,而是会以sidecar模式,通过共享的volume将agent所需的相关文件直接挂载到已经存在的服务镜像中。
skywalking接入容器及k8s
上面已经简单介绍了skywalking监控容器化应用,接下来将详细描述如何将skywalking接入到容器及k8s中:
- 使用官方提供的基础镜像: 直接使用官方原生镜像:FROMapache/skywalking-java-agent:8.5.0-jdk8即可。
- 将agent包构建到已经存在的基础镜像中: 下载skywalking官方发行包,并解压:
wget https://dlcdn.apache.org/skywalking/java-agent/8.8.0/apache-skywalking-java-agent-8.8.0.tgz && tar -zxvf apache-skywalking-java-agent-8.8.0.tgz
通过Dockerfile构建基础镜像:
FROM alpine:3.8
ENV LANG=C.UTF-8
RUN set -eux && \
apk update && \
apk upgrade && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-2.30-r0.apk && \
apk --no-cache add unzip vim curl git bash ca-certificates glibc-2.30-r0.apk file && \
rm -rf /var/lib/apk/* && \
mkdir -p /usr/skywalking/agent/\
# A streamlined jre
ADD jdk1.8.0_221/ /usr/java/jdk1.8.0_221/
ADD apache-skywalking-apm-bin/agent/ /usr/skywalking/agent/
# set env
ENV JAVA_HOME /usr/java/jdk1.8.0_221
ENV PATH ${PATH}:${JAVA_HOME}/bin
- sidecar模式挂在agent: 下载skywalking官方发行包,并解压:
wget https://dlcdn.apache.org/skywalking/java-agent/8.8.0/apache-skywalking-java-agent-8.8.0.tgz && tar -zxvf apache-skywalking-java-agent-8.8.0.tgz
通过Dockerfile构建镜像:
FROM busybox:latest
ENV LANG=C.UTF-8
RUN set -eux && mkdir -p /usr/skywalking/agent/
ADD apache-skywalking-apm-bin/agent/ /usr/skywalking/agent/
WORKDIR /
通过以上步骤,即可将skywalking接入到容器及k8s中进行应用程序监控。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6277.html
