-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathk8s-port-forward.sh
More file actions
executable file
ยท170 lines (138 loc) ยท 4.78 KB
/
k8s-port-forward.sh
File metadata and controls
executable file
ยท170 lines (138 loc) ยท 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#!/bin/bash
# LogPilot Kubernetes ํฌํธ ํฌ์๋ฉ ์คํฌ๋ฆฝํธ
# ์ด ์คํฌ๋ฆฝํธ๋ minikube์์ ์คํ ์ค์ธ LogPilot ์๋น์ค๋ฅผ ๋ก์ปฌ์์ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค.
set -e
# ์์ ์ฝ๋
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# ๋ก๊ทธ ํจ์๋ค
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# ๊ธฐ์กด ํฌํธ ํฌ์๋ฉ ํ๋ก์ธ์ค ์ข
๋ฃ
cleanup_port_forwards() {
log_info "๊ธฐ์กด ํฌํธ ํฌ์๋ฉ ํ๋ก์ธ์ค๋ฅผ ์ ๋ฆฌํฉ๋๋ค..."
pkill -f "kubectl port-forward.*logpilot" 2>/dev/null || true
sleep 2
}
# ํฌํธ ํฌ์๋ฉ ์์
start_port_forwards() {
log_info "ํฌํธ ํฌ์๋ฉ์ ์์ํฉ๋๋ค..."
# HTTP REST API ํฌํธ (8080)
log_info "HTTP REST API ํฌํธ ํฌ์๋ฉ ์์: 8080"
kubectl port-forward -n logpilot svc/logpilot-all 8080:8080 > /dev/null 2>&1 &
HTTP_PID=$!
# gRPC API ํฌํธ (50051)
log_info "gRPC API ํฌํธ ํฌ์๋ฉ ์์: 50051"
kubectl port-forward -n logpilot svc/logpilot-all 50051:50051 > /dev/null 2>&1 &
GRPC_PID=$!
# Management ํฌํธ (8081)
log_info "Management ํฌํธ ํฌ์๋ฉ ์์: 8081"
kubectl port-forward -n logpilot svc/logpilot-all 8081:8081 > /dev/null 2>&1 &
MGMT_PID=$!
# ์ ์ ๋๊ธฐํ์ฌ ํฌํธ ํฌ์๋ฉ์ด ์์๋๋๋ก ํจ
sleep 3
}
# ์ฐ๊ฒฐ ํ
์คํธ
test_connections() {
log_info "์ฐ๊ฒฐ์ ํ
์คํธํฉ๋๋ค..."
# Management ํฌํธ ํ
์คํธ
if curl -s -f http://localhost:8081/actuator/health > /dev/null; then
log_success "Management ํฌํธ (8081) ์ฐ๊ฒฐ ์ฑ๊ณต"
else
log_error "Management ํฌํธ (8081) ์ฐ๊ฒฐ ์คํจ"
fi
# HTTP REST API ํ
์คํธ (๊ฐ๋จํ ์ฐ๊ฒฐ ํ
์คํธ)
if nc -z localhost 8080 2>/dev/null; then
log_success "HTTP REST API ํฌํธ (8080) ์ฐ๊ฒฐ ์ฑ๊ณต"
else
log_error "HTTP REST API ํฌํธ (8080) ์ฐ๊ฒฐ ์คํจ"
fi
# gRPC API ํ
์คํธ (๊ฐ๋จํ ์ฐ๊ฒฐ ํ
์คํธ)
if nc -z localhost 50051 2>/dev/null; then
log_success "gRPC API ํฌํธ (50051) ์ฐ๊ฒฐ ์ฑ๊ณต"
else
log_error "gRPC API ํฌํธ (50051) ์ฐ๊ฒฐ ์คํจ"
fi
}
# ์ฌ์ฉ๋ฒ ์ถ๋ ฅ
show_usage_info() {
echo
log_info "=== LogPilot ๋ก์ปฌ ์ ๊ทผ ์ ๋ณด ==="
echo
echo -e "${GREEN}HTTP REST API:${NC} http://localhost:8080"
echo -e "${GREEN}gRPC API:${NC} localhost:50051"
echo -e "${GREEN}Management:${NC} http://localhost:8081"
echo -e "${GREEN}Health Check:${NC} http://localhost:8081/actuator/health"
echo -e "${GREEN}Metrics:${NC} http://localhost:8081/actuator/metrics"
echo
log_info "=== Consumer/Producer ์คํ ์์ ==="
echo
echo "# gRPC Consumer/Producer"
echo "java -jar logpilot-client/build/libs/logpilot-client.jar --grpc.server.address=localhost:50051"
echo
echo "# REST API ๋ก๊ทธ ์ ์ฅ"
echo "curl -X POST http://localhost:8080/api/logs \\"
echo " -H 'Content-Type: application/json' \\"
echo " -d '{\"channel\":\"test\",\"level\":\"INFO\",\"message\":\"test log\"}'"
echo
echo "# REST API ๋ก๊ทธ ์กฐํ"
echo "curl http://localhost:8080/api/logs"
echo
log_warning "์ด ํฐ๋ฏธ๋์ ๋ซ์ผ๋ฉด ํฌํธ ํฌ์๋ฉ์ด ์ค๋จ๋ฉ๋๋ค."
log_info "์ค๋จํ๋ ค๋ฉด Ctrl+C๋ฅผ ๋๋ฅด์ธ์."
}
# ์ ํธ ํธ๋ค๋ฌ - ์คํฌ๋ฆฝํธ ์ข
๋ฃ ์ ํฌํธ ํฌ์๋ฉ๋ ํจ๊ป ์ข
๋ฃ
cleanup_on_exit() {
echo
log_info "ํฌํธ ํฌ์๋ฉ์ ์ข
๋ฃํฉ๋๋ค..."
cleanup_port_forwards
exit 0
}
# ๋ฉ์ธ ํจ์
main() {
log_info "=== LogPilot Kubernetes ํฌํธ ํฌ์๋ฉ ์์ ==="
# kubectl ๋ช
๋ น์ด ํ์ธ
if ! command -v kubectl &> /dev/null; then
log_error "kubectl์ด ์ค์น๋์ง ์์์ต๋๋ค."
exit 1
fi
# Kubernetes ํด๋ฌ์คํฐ ์ฐ๊ฒฐ ํ์ธ
if ! kubectl get nodes &> /dev/null; then
log_error "Kubernetes ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค."
log_info "minikube๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ์ธ์: minikube status"
exit 1
fi
# LogPilot ์๋น์ค ํ์ธ
if ! kubectl get svc logpilot-all -n logpilot &> /dev/null; then
log_error "LogPilot ์๋น์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค."
log_info "๋จผ์ LogPilot์ ๋ฐฐํฌํ์ธ์: ./k8s-deploy.sh"
exit 1
fi
# ์๊ทธ๋ ํธ๋ค๋ฌ ๋ฑ๋ก (Ctrl+C ์ฒ๋ฆฌ)
trap cleanup_on_exit SIGINT SIGTERM
# ๊ธฐ์กด ํฌํธ ํฌ์๋ฉ ์ ๋ฆฌ
cleanup_port_forwards
# ํฌํธ ํฌ์๋ฉ ์์
start_port_forwards
# ์ฐ๊ฒฐ ํ
์คํธ
test_connections
# ์ฌ์ฉ๋ฒ ์ ๋ณด ์ถ๋ ฅ
show_usage_info
# ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ ์ค์ธ ํฌํธ ํฌ์๋ฉ์ ๊ธฐ๋ค๋ฆผ
wait
}
# ์คํฌ๋ฆฝํธ ์คํ
main "$@"