#!/bin/bash # SkyWalking 安装脚本 echo "开始安装 SkyWalking..." # 检查 kubectl 是否可用 if ! command -v kubectl &> /dev/null; then echo "错误: kubectl 未安装或不在 PATH 中" exit 1 fi # 创建存储目录 echo "创建存储目录..." echo "在 master 节点上创建以下目录:" echo " - /opt/elasticsearch" echo " - /opt/skywalking-oap" echo "" echo "请确保 master 节点有足够的磁盘空间(建议至少 100GB)" echo "" # 创建命名空间(如果不存在) echo "创建命名空间..." kubectl create namespace default --dry-run=client -o yaml | kubectl apply -f - # 按顺序部署组件 echo "1. 部署 Elasticsearch..." kubectl apply -f elasticsearch-deployment.yaml kubectl apply -f elasticsearch-service.yaml echo "等待 Elasticsearch 启动..." kubectl wait --for=condition=ready pod -l app=elasticsearch --timeout=300s echo "2. 部署 SkyWalking OAP..." kubectl apply -f skywalking-oap-deployment.yaml kubectl apply -f skywalking-oap-service.yaml echo "等待 SkyWalking OAP 启动..." kubectl wait --for=condition=ready pod -l app=skywalking-oap --timeout=300s echo "3. 部署 SkyWalking UI..." kubectl apply -f skywalking-ui-deployment.yaml kubectl apply -f skywalking-ui-service.yaml echo "等待 SkyWalking UI 启动..." kubectl wait --for=condition=ready pod -l app=skywalking-ui --timeout=300s echo "4. 配置 Ingress..." kubectl apply -f skywalking-ingress.yaml echo "SkyWalking 安装完成!" echo "" echo "访问地址: https://skywalking-ops.t-aaron.com" echo "" echo "检查服务状态:" kubectl get pods -l app=elasticsearch kubectl get pods -l app=skywalking-oap kubectl get pods -l app=skywalking-ui echo "" echo "检查服务:" kubectl get svc | grep -E "(elasticsearch|skywalking)" echo "" echo "检查 Ingress:" kubectl get ingress skywalking-ingress