70 lines
2.0 KiB
Bash
Executable File
70 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Kubernetes Dashboard 访问脚本
|
|
|
|
set -e
|
|
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
|
|
log_warning() { echo -e "${YELLOW}[!]${NC} $1"; }
|
|
|
|
echo ""
|
|
log_info "=== Kubernetes Dashboard 访问向导 ==="
|
|
echo ""
|
|
|
|
# 检查 Dashboard 状态
|
|
log_info "[1/4] 检查 Dashboard 状态..."
|
|
if kubectl get deployment kubernetes-dashboard -n kubernetes-dashboard &> /dev/null; then
|
|
STATUS=$(kubectl get deployment kubernetes-dashboard -n kubernetes-dashboard -o jsonpath='{.status.availableReplicas}')
|
|
if [ "$STATUS" == "1" ]; then
|
|
log_success "Dashboard 运行正常"
|
|
else
|
|
log_warning "Dashboard 未就绪,请检查部署状态"
|
|
exit 1
|
|
fi
|
|
else
|
|
log_warning "Dashboard 未部署"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 显示 Token
|
|
log_info "[2/4] 获取访问 Token..."
|
|
TOKEN_FILE="enterprise-k8s-manifests/dashboard-token-new.txt"
|
|
if [ -f "$TOKEN_FILE" ]; then
|
|
TOKEN=$(cat "$TOKEN_FILE")
|
|
log_success "Token 已准备好(有效期 1 年)"
|
|
else
|
|
log_info "生成新 Token..."
|
|
TOKEN=$(kubectl -n kubernetes-dashboard create token admin-user --duration=8760h)
|
|
echo "$TOKEN" > "$TOKEN_FILE"
|
|
log_success "Token 已生成并保存"
|
|
fi
|
|
echo ""
|
|
|
|
# 复制 Token 到剪贴板
|
|
log_info "[3/4] 复制 Token 到剪贴板..."
|
|
echo -n "$TOKEN" | pbcopy
|
|
log_success "Token 已复制到剪贴板,可以直接粘贴登录"
|
|
echo ""
|
|
|
|
# 启动端口转发
|
|
log_info "[4/4] 启动端口转发..."
|
|
log_warning "即将在 https://localhost:9443 启动 Dashboard"
|
|
log_warning "请在浏览器中打开上述地址,选择 Token 登录方式,然后粘贴 Token"
|
|
log_warning "注意: 使用 9443 端口(8443 已被 Harbor 占用)"
|
|
echo ""
|
|
log_info "按 Ctrl+C 可停止端口转发"
|
|
echo ""
|
|
|
|
# 打开浏览器
|
|
sleep 2
|
|
open https://localhost:9443 2>/dev/null || true
|
|
|
|
# 启动端口转发(阻塞)
|
|
kubectl port-forward -n kubernetes-dashboard svc/kubernetes-dashboard 9443:443
|