1. KubePi 简介
KubePi 是一个开源的 Kubernetes 多集群管理面板,提供以下核心功能:
多集群管理:支持接入多个 Kubernetes 集群统一管理。
可视化操作:提供资源(Pod、Deployment、Service 等)的创建、删除、监控功能。
权限控制:基于角色的访问控制(RBAC),支持多租户隔离。
监控与日志:集成 Prometheus、Grafana 和日志收集组件。
安全审计:操作记录和审计日志。
适用场景:
需要集中管理多个 Kubernetes 集群的团队。
希望简化 Kubernetes 资源操作的开发者和运维人员。
需要可视化监控和告警的集群管理员。
2. 系统要求
2.1 硬件要求
组件 最低配置 推荐配置
CPU 2 核 4 核
内存 4GB 8GB
存储 20GB 50GB(需持久化)
2.2 软件依赖
Kubernetes 集群:版本 ≥ 1.18
Docker:版本 ≥ 20.10(若使用 Docker 部署)
NFS 服务器:用于持久化存储(可选,但生产环境推荐)
2.3 网络要求
开放端口:
80/8000:KubePi Dashboard 访问端口。
30000-32767:NodePort 范围(若使用 Service 暴露服务)。
3.kubepi部署
3.1 nfs部署
3.2 kubepi 部署pv、pvc
3.3 kubepi 部署deployment
3.4 kubepi 部署service
3.5 kubepi web 控制台登陆
3.6 kubepi修改默认密码
3.7kubepi导入k8s集群
1. 创建 ServiceAccount (SA)
bash
复制
kubectl create sa ampadmin --namespace kube-system
作用:在 kube-system 命名空间中创建一个名为 ampadmin 的 ServiceAccount。
用途:ServiceAccount 是 Kubernetes 中用于身份认证的实体,通常用于 Pod 或外部服务与 Kubernetes API 交互。
输出:serviceaccount/ampadmin created 表示创建成功。
2. 绑定 ClusterRole
bash
复制
kubectl create clusterrolebinding ampadmin --clusterrole=cluster-admin --serviceaccount=kube-system:ampadmin
作用:将 ampadmin ServiceAccount 绑定到 Kubernetes 内置的 cluster-admin ClusterRole。
解释:
cluster-admin 是 Kubernetes 的超级管理员角色(拥有集群最高权限)。
此操作意味着 ampadmin 账号获得了对整个集群的完全控制权。
输出:clusterrolebinding.rbac.authorization.k8s.io/ampadmin created 表示绑定成功。
3. 获取 ServiceAccount 的 Token
bash
复制
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ampadmin | awk '{print $1}') | grep token: | awk '{print $2}'
目的:提取 ampadmin ServiceAccount 的认证 Token,用于通过 Kubernetes API 进行身份验证。
分步解析:
获取 Secret 名称:
bash
复制
kubectl -n kube-system get secret | grep ampadmin | awk '{print $1}'
列出 kube-system 命名空间中的所有 Secret。
通过 grep ampadmin 过滤出与 ampadmin 相关的 Secret。
使用 awk '{print $1}' 提取 Secret 名称(通常是 ampadmin-token-xxxxx)。
查看 Secret 详细信息:
bash
复制
kubectl -n kube-system describe secret <secret-name>
输出 Secret 的详细信息,其中包含 token 字段。
提取 Token:
bash
复制
grep token: | awk '{print $2}'
过滤出包含 token: 的行。
使用 awk '{print $2}' 提取 Token 值。
4. 最终输出
结果:该命令会返回一个长字符串(类似 eyJhbGciOiJSUzI1NiIsImtpZ...),这是 ampadmin ServiceAccount 的 JWT Token。
用途:此 Token 可用于:
通过 kubectl 命令行工具认证:
bash
复制
kubectl --token=<TOKEN> get pods -n kube-system
通过 Kubernetes Dashboard 登录。
集成到 CI/CD 工具或其他需要访问集群的应用中。