k8s部署dashboard kubepi
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
# kubepi-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: kubepi-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain # 保留数据(生产建议)
nfs:
path: /nfs_share/k8s/kubepi/pv1 # NFS服务器共享路径
server: 172.16.4.60 # NFS服务器IP
---
# kubepi-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: kubepi-pvc
namespace: kubepi
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
volumeName: kubepi-pv # 显式绑定到指定PV(可选)
kubectl apply -f kubepi-pv.yaml
3.3 kubepi 部署deployment
- 需增加特权模式,privileged: true,否则在kubepi无法跳转命令行
apiVersion: apps/v1
kind: Deployment
metadata:
name: kubepi
namespace: kubepi
spec:
replicas: 1
selector:
matchLabels:
app: kubepi
template:
metadata:
labels:
app: kubepi
spec:
containers:
- name: kubepi
image: 172.16.4.17:8090/ltzx/kubeoperator/kubepi-server:latest
ports:
- containerPort: 80
securityContext: # 新增安全上下文
privileged: true # 启用特权模式(等效 --privileged)
volumeMounts:
- mountPath: /var/lib/kubepi
name: kubepi-data
volumes:
- name: kubepi-data
persistentVolumeClaim:
claimName: kubepi-pvc
kubectl apply -f kubepi-deployment.yaml
3.4 kubepi 部署service
# kubepi-service.yaml
apiVersion: v1
kind: Service
metadata:
name: kubepi-service
namespace: kubepi # 指定命名空间
spec:
type: NodePort
selector:
app: kubepi
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30081
kubectl apply -f kubepi-svc.yaml
3.5 kubepi web 控制台登陆
http://master-IP:30081
admin/kubepi #默认账号密码
3.6 kubepi修改默认密码
- 可以在登陆到kubepi web 控制台后进行密码修改
3.7kubepi导入k8s集群
3.7.1. 创建 ServiceAccount (SA)
kubectl create sa ampadmin --namespace kube-system
- 作用:在 kube-system 命名空间中创建一个名为 ampadmin 的 ServiceAccount。
- 用途:ServiceAccount 是 Kubernetes 中用于身份认证的实体,通常用于 Pod 或外部服务与 Kubernetes API 交互。
- 输出:serviceaccount/ampadmin created 表示创建成功。
3.7.2. 绑定 ClusterRole
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.7.3. 获取 ServiceAccount 的 Token
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 进行身份验证。
3.7.4. 最终输出
- 结果:该命令会返回一个长字符串(类似 eyJhbGciOiJSUzI1NiIsImtpZ...),这是 ampadmin ServiceAccount 的 JWT Token
- 用途:此 Token 可用于:kubepi 导入k8s集群的 Bearer Token
3.7.5 在master节点获取apiserver地址
cat ~/.kube/config | grep server: | awk '{print $2}'
- 获取结果 https://IP:6443
3.7.6 在下边输入名称、API Server、Bearer Token即可进入集群,并管理
- 点击确定后,即可进入k8s集群
至此 kubepi 就部署完了!!!
分类:
k8s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探