helm 安装 skywalking

参考网站

https://skyapm.github.io/document-cn-translation-of-skywalking/
https://github.com/apache/skywalking-kubernetes
https://github.com/apache/skywalking-kubernetes/blob/master/chart/skywalking/README.md

部署

前提:这里使用的是自己搭建的 es 集群,可参考:https://www.cnblogs.com/klvchen/articles/17445961.html

# 添加源
helm repo add skywalking https://apache.jfrog.io/artifactory/skywalking-helm

# 创建命名空间及目录
kubectl create ns skywalking
mkdir -p /data/yaml/skywalking && cd /data/yaml/skywalking

# 下载和安装
helm pull skywalking/skywalking
tar zxvf skywalking-4.3.0.tgz

cat >> my-values.yaml << EOF 
oap:
  image:
    tag: 9.2.0
  storageType: elasticsearch

ui:
  image:
    tag: 9.2.0
  service:
    type: NodePort
    nodePort: 30880

elasticsearch:
  enabled: false
  config:               
    host: es-elasticsearch.default
    port:
      http: 9200
EOF 

helm -n skywalking install skywalking -f my-values.yaml skywalking

kubectl -n skywalking get pod

测试

## 创建测试镜像路径
mkdir -p /data/images/mydemo2 && cd /data/images/mydemo2

# 根据你实际情况来修改
cat >> docker-entrypoint.sh << -'EOF' 
#!/bin/bash
java -javaagent:/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=${appName} \
-Dskywalking.collector.backend_service=skywalking-oap.skywalking:11800 \
-jar /${appName}.jar
-EOF

cat >> Dockerfile << EOF 
FROM openjdk:17.0.2-slim
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime && echo "Asia/Shanghai" >/etc/timezone
ADD skywalking-agent skywalking-agent
ADD mydemo1-0.0.1-SNAPSHOT.jar mydemo2.jar
COPY docker-entrypoint.sh /
CMD [ "/bin/bash", "/docker-entrypoint.sh" ]
EOF

# 放进 mydemo1-0.0.1-SNAPSHOT.jar 包,可以参考 https://www.cnblogs.com/klvchen/articles/15307918.html 

# 下载 apache-skywalking-java-agent,也可以官网中 agent 部分找到下载链接
wget https://dlcdn.apache.org/skywalking/java-agent/8.15.0/apache-skywalking-java-agent-8.15.0.tgz
tar zxf apache-skywalking-java-agent-8.15.0.tgz

# 打包镜像
docker build -t devharbor.junengcloud.com/tmp/mydemo2:0.2 .
docker push devharbor.junengcloud.com/tmp/mydemo2:0.2

# 部署到 K8S 上
mkdir -p /data/yaml/default/mydemo2 && cd /data/yaml/default/mydemo2

cat >> deployment.yml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mydemo2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydemo2
  template:
    metadata:
      labels:
        app: mydemo2
    spec:
      containers:
      - name: mydemo2
        image: devharbor.junengcloud.com/tmp/mydemo2:0.2
        imagePullPolicy: IfNotPresent
        env:
        - name: appName
          valueFrom:
            fieldRef:
              fieldPath: metadata.labels['app']
EOF

kubectl apply -f deployment.yml

posted @ 2023-05-31 17:42  klvchen  阅读(627)  评论(0)    收藏  举报