当前位置: 首页 > article >正文

Kubernetes 集群到 Jumpserver

以下是使用 ServiceAccount Token(令牌) 连接 Kubernetes 集群到 Jumpserver 的 详细分步指南,包括权限配置、Token 获取和常见问题排查。


1. 创建 ServiceAccount 并分配权限

1.1 创建 ServiceAccount

在 Kubernetes 集群中创建一个专用于 Jumpserver 的 ServiceAccount(如 jumpserver-admin):

kubectl create serviceaccount jumpserver-admin -n kube-system

1.2 绑定 ClusterRole(赋予管理员权限)
kubectl create clusterrolebinding jumpserver-admin \--clusterrole=cluster-admin \--serviceaccount=kube-system:jumpserver-admin
  • 说明

    • cluster-admin 是 Kubernetes 内置的最高权限角色(生产环境建议按需缩小权限)。

    • 如果只需要特定命名空间的权限,改用 RoleBinding 和自定义 Role


2. 使用 TokenRequest API(推荐新方法)

更现代的方法是直接通过 API 获取 Token:

kubectl create token jumpserver-admin -n kube-system --duration=8760h
  • --duration=8760h 设置 Token 有效期(1年),按需调整。

复制输出的 Token,用以下命令测试:

curl -k -H "Authorization: Bearer <粘贴Token>" https://<k8s-api-server>:6443/api/v1/namespaces/default/pods

  • 应返回 JSON 格式的 Pod 列表或权限相关信息。


3. 在 Jumpserver 中配置密文

  1. 进入 Jumpserver

    • 导航到 "凭据管理" → "密文" → 点击 "创建密文"

  2. 填写密文信息

    • 名称k8s-admin-token(自定义)

    • 密文类型:选择 "令牌"(关键步骤!)

    • 密钥:粘贴从步骤 2 复制的 Token。

    • 其他字段(如描述)按需填写。

  3. 点击 "提交" 保存。


4. 在 Jumpserver 中添加 Kubernetes 集群

  1. 进入 Kubernetes 管理

    • 导航到 "Kubernetes" → "集群管理" → 点击 "创建集群"

  2. 填写集群信息

    • 名称prod-cluster(自定义)

    • API Server:填写 k8s API 地址,例如:

      • 默认端口:https://<k8s-master-ip>:6443

      • 如果通过负载均衡器访问,填写对应的 URL。

    • 认证方式:选择 "Bearer Token"(或类似选项)。

    • 关联密文:选择刚才创建的 k8s-admin-token

    • 其他选项

      • 跳过证书验证:如果使用自签名证书且未上传 CA,勾选此项(仅限测试环境)。

      • 集群别名:按需填写(显示在 Web 终端中的名称)。

  3. 测试连接

    • 点击 "测试连接",确认返回成功(绿色提示)。

  4. 点击 "提交" 完成配置。


5. 验证连接

  1. 在 Jumpserver Web 终端访问

    • 登录 Jumpserver 用户账号。

    • 进入 "Web 终端" → 选择刚添加的 Kubernetes 集群。

    • 执行命令测试(如 kubectl get nodes),应能正常返回节点列表。

  2. 检查权限

    • 执行 kubectl auth can-i --list 确认权限符合预期。


6. 常见问题排查

问题 1:Token 无效或过期
  • 现象:连接测试失败,提示 Unauthorized

  • 解决

    • 重新生成 Token(ServiceAccount 的 Token 默认永久有效,但 Secret 可能被删除)。

    • 检查 Secret 是否存在:

      kubectl get secret -n kube-system | grep jumpserver-admin
问题 2:证书验证失败
  • 现象x509: certificate signed by unknown authority

  • 解决

    • 方法 1:在 Jumpserver 集群配置中上传 k8s 的 CA 证书(路径通常为 /etc/kubernetes/pki/ca.crt)。

    • 方法 2(临时方案):勾选 "跳过证书验证"(不推荐生产环境)。

问题 3:网络不通
  • 现象:连接超时或 Connection refused

  • 解决

    • 从 Jumpserver 服务器测试网络连通性:

      curl -k https://<k8s-api-server>:6443
    • 检查 k8s API Server 是否监听正确端口:

      netstat -tuln | grep 6443
    • 确保防火墙/安全组放行 6443 端口

问题 4:权限不足
  • 现象:执行命令时提示 Forbidden

  • 解决

    • 检查 ClusterRoleBinding 是否正确:

      kubectl get clusterrolebinding jumpserver-admin -o yaml
    • 按需调整权限(参考 Kubernetes RBAC 文档)。


7. 安全建议

  1. 最小权限原则:不要滥用 cluster-admin,按需限制权限,例如:

    # 仅允许读取所有命名空间的 Pod
    kubectl create clusterrole jumpserver-view --verb=get,list --resource=pods
    kubectl create clusterrolebinding jumpserver-view --clusterrole=jumpserver-view --serviceaccount=kube-system:jumpserver-admin
  2. 定期轮换 Token:删除旧 Secret 触发自动生成新 Token:

    kubectl delete secret <secret-name> -n kube-system
  3. 审计日志:在 Jumpserver 中启用会话录制,定期检查 k8s 的审计日志。


通过以上步骤,你能成功将 Kubernetes 集群集成到 Jumpserver。

http://www.lryc.cn/news/2401710.html

相关文章:

  • Android7 Input(十)View 处理Input事件pipeline
  • 图像数据如何表示为概率单纯形
  • (11)Service Mesh架构下Java应用实现零信任安全模型
  • 什么是内网映射?如何将内网ip映射到外网访问?
  • 为什么要选择VR看房?VR看房有什么优点?
  • linux 串口调试命令 stty
  • C++STL-vector的使用
  • 图简记。。
  • pytorch基本运算-范数
  • uefi协议设计目的
  • springcloud openfeign 偶现 Caused by: java.net.UnknownHostException
  • Transformer实战——词嵌入技术详解
  • [pdf、epub]300道《软件方法》强化自测题业务建模需求分析共257页(202505更新)
  • Vue3入门指南:从零到精通的快速上手
  • 前端常见错误
  • 吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py
  • 关于DDOS
  • 云服务器自带的防御可靠吗
  • Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
  • 设计模式——抽象工厂设计模式(创建型)
  • 基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析
  • Linux 云服务器部署 Flask 项目(含后台运行与 systemd 开机自启)
  • 霍尔效应传感器的革新突破:铟化铟晶体与结构演进驱动汽车点火系统升级
  • 无法运用pytorch环境、改环境路径、隔离环境
  • 从0开始学vue:pnpm怎么安装
  • React从基础入门到高级实战:React 实战项目 - 项目二:电商平台前端
  • Python 网络编程 -- WebSocket编程
  • 微信小程序动态组件加载的应用场景与实现方式
  • 人工智能在智能教育中的创新应用与未来趋势
  • 边缘计算应用实践心得