Files
ljwx-k8s/access-dashboard.sh
2026-02-20 22:50:45 +08:00

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