Kubernetes :健康检查、认证授权与可视化面板

Kubernetes :健康检查、认证授权与可视化面板

引言

在 Kubernetes 的日常运维中,如何确保应用的高可用?如何精准控制用户和进程的访问权限?以及如何通过可视化界面提升管理效率?这些都是进阶云原生工程师必须面对的核心问题。

本文将从 Pod 的探针机制(Health Check)讲起,深入剖析 K8s 的 API 访问控制流程(认证、鉴权与准入),最后实战部署两款主流的管理面板(Kuboard 与 Kubernetes Dashboard),带你全面构建一个健壮、安全的 K8s 生产级集群。


### 文章目录

  • [Kubernetes :健康检查、认证授权与可视化面板](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [引言](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [@toc](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [一、应用健康检查(Health Check)底层机制](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [1.1 探针的分类与生命周期干预](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [二、探针的三种检查方法与核心参数配置](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [2.1 核心探针参数调优](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [2.2 实战场景:HTTP 探针(httpGet)](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [2.3 实战场景:Exec 探针(exec)](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [2.4 实战场景:TCP 探针(tcpSocket)](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [2.5 深度排坑:Readiness 与 Liveness 的联动陷阱](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [三、Kubernetes 访问控制全流程拆解](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [3.1 API 访问控制四大阶段](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [3.2 K8s 鉴权模式的演进](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [3.3 认证机制:X509 客户证书实战](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [四、RBAC 授权模型与企业级实战](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [4.1 Role 与 ClusterRole 的区别与绑定](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [4.2 核心概念:apiGroups 的深坑](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [4.3 实战场景:精细化权限分配](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [五、服务账户(ServiceAccount)与 Token 演进机制](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [5.1 Token 挂载机制的演进(1.24 分水岭)](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [5.2 手工生成 Token(新旧兼容)](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [六、可视化面板实战:Kuboard 与 Dashboard](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [6.1 Kuboard v3 部署与纳管](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)
  • [6.2 Kubernetes Dashboard 部署与登录](#文章目录 Kubernetes :健康检查、认证授权与可视化面板 引言 @[toc] 一、应用健康检查(Health Check)底层机制 1.1 探针的分类与生命周期干预 二、探针的三种检查方法与核心参数配置 2.1 核心探针参数调优 2.2 实战场景:HTTP 探针(httpGet) 2.3 实战场景:Exec 探针(exec) 2.4 实战场景:TCP 探针(tcpSocket) 2.5 深度排坑:Readiness 与 Liveness 的联动陷阱 三、Kubernetes 访问控制全流程拆解 3.1 API 访问控制四大阶段 3.2 K8s 鉴权模式的演进 3.3 认证机制:X509 客户证书实战 四、RBAC 授权模型与企业级实战 4.1 Role 与 ClusterRole 的区别与绑定 4.2 核心概念:apiGroups 的深坑 4.3 实战场景:精细化权限分配 五、服务账户(ServiceAccount)与 Token 演进机制 5.1 Token 挂载机制的演进(1.24 分水岭) 5.2 手工生成 Token(新旧兼容) 六、可视化面板实战:Kuboard 与 Dashboard 6.1 Kuboard v3 部署与纳管 6.2 Kubernetes Dashboard 部署与登录)

一、应用健康检查(Health Check)底层机制

在没有配置探针的情况下,只要容器内的 PID 1 进程没有退出,Kubelet 就会盲目地认为 Pod 处于 Running 状态。这种现象在实际生产中极具欺骗性。例如:应用进程虽然活着,但内部发生了死锁,或者应用已经启动,但依赖的数据库尚未连接成功,此时如果 Service 将流量转发过来,就会直接导致业务报错。

为了解决这一痛点,Kubelet 通过周期性地对容器执行 探针(Probes),根据探测结果来干预容器的生命周期。

1.1 探针的分类与生命周期干预

  • LivenessProbe(存活探针) :用于判定容器是否处于健康状态。如果探测失败,Kubelet 会杀掉容器并根据重启策略重启。适用于应用发生死锁、内部状态不可恢复的故障。
  • ReadinessProbe(就绪探针) :用于判定容器是否准备好接收业务流量。如果探测失败,Kubelet 会将该 Pod 从 Service 的 Endpoints 列表中剔除 ,切断流量,但不会重启容器。适用于应用启动慢、或者正在加载缓存、或者临时过载无法处理的场景。一旦探测恢复成功,Pod 会重新加入负载均衡。
  • StartupProbe(启动探针):专为极慢启动的容器(如大型 Java 应用)设计。一旦配置,在它成功之前,存活探针和就绪探针都不会执行。如果启动探针失败,Kubelet 会杀掉容器并重启,这有效避免了慢启动应用在启动阶段被存活探针误杀。

二、探针的三种检查方法与核心参数配置

Kubelet 提供了 HTTP、Exec 和 TCP 三种检查方式,针对不同的业务形态灵活选择。

2.1 核心探针参数调优

在探针配置中,以下几个参数直接决定了探针的灵敏度和容错率:

  • initialDelaySeconds:容器启动后,等待多长时间开始第一次探测(需结合应用实际启动时间评估)。
  • periodSeconds:探测的周期频率(默认 10 秒)。
  • timeoutSeconds:单次探测的超时时间(默认 1 秒),网络不佳时需适当调大。
  • successThreshold:连续成功多少次才判定为成功(默认 1,存活探针只能是 1)。
  • failureThreshold:连续失败多少次才判定为失败(默认 3),这是容忍抖动的关键阈值。

2.2 实战场景:HTTP 探针(httpGet)

最常用的方式,适用于提供 HTTP 服务的应用。只要响应码在 200 - 399 之间,即判定成功。

具体配置:

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: hub.xianyu.cloud/library/httpd
        imagePullPolicy: IfNotPresent
        name: httpd
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 5
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 10
          httpGet:
            path: /index.html
            port: 80
            scheme: HTTP

现象观察 :创建后,进入容器删除 htdocs/index.html 文件。此时探针探测返回 404,触发失败。连续失败 3 次后,Pod 的 RESTARTS 次数加 1,容器被重启。

2.3 实战场景:Exec 探针(exec)

在容器内执行一条命令。如果命令的退出码为 0,则认为健康。

具体配置:检测特定文件是否存在。

yaml 复制代码
        livenessProbe:
          exec:
            command:
            - cat
            - /usr/local/apache2/htdocs/index.html

或者针对 BusyBox 应用,通过一段脚本动态创建和删除文件来模拟健康状态:

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: busybox
  name: busybox
spec:
  containers:
  - image: busybox
    imagePullPolicy: IfNotPresent
    name: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 10; rm -rf /tmp/healthy; sleep 100
    livenessProbe:
      exec:
        command:
        - ls
        - /tmp/healthy

现象观察:前 10 秒文件存在,探针成功。第 10 秒文件被删,探针开始失败,达到阈值后容器重启。

2.4 实战场景:TCP 探针(tcpSocket)

尝试与容器的特定端口建立 TCP 连接。只要连接建立成功,即认为健康。适用于非 HTTP 的 TCP 服务(如数据库)。

yaml 复制代码
        livenessProbe:
          tcpSocket:
            port: 80

2.5 深度排坑:Readiness 与 Liveness 的联动陷阱

如果一个 Pod 同时配置了 ReadinessProbe 和 LivenessProbe,且 ReadinessProbe 失败导致 Pod 被移除 Endpoints,此时流量中断。如果 LivenessProbe 依然成功,Kubelet 不会重启该 Pod,应用将长时间处于"活着但不干活"的状态。因此,需要确保 Liveness 检测的是进程的"假死",Readiness 检测的是"依赖就绪",两者侧重点需严格区分。


三、Kubernetes 访问控制全流程拆解

K8s API Server 是所有请求的唯一入口。每一个请求都需要经过严格的多阶段访问控制。

3.1 API 访问控制四大阶段

  1. 传输安全:API Server 默认使用 6443 端口,受 TLS 保护。
  2. 身份认证(Authentication):校验请求者的身份(如客户端证书、Token)。认证失败返回 401。
  3. 鉴权(Authorization):确认该用户是否有权限执行该操作。失败返回 403。
  4. 准入控制(Admission Control):对请求的内容进行拦截和修改,如校验资源限制、添加默认参数等。

3.2 K8s 鉴权模式的演进

K8s 支持多种鉴权模式,通过 --authorization-mode 参数配置:

  • AlwaysDeny:拒绝所有请求。
  • AlwaysAllow:允许所有请求,通常仅用于测试环境。如果修改 apiserver 为该模式,即使没有 RBAC 权限的用户也可以操作集群。
  • ABAC:基于属性的访问控制,配置繁琐,已被淘汰。
  • Node:节点专用鉴权,根据调度到 kubelet 上的 Pod 为其授予权限。
  • RBAC:基于角色的访问控制,企业级核心标配。
  • Webhook:通过 HTTP 回调将鉴权决策交由外部系统。

现象观察 :如果手动将 /etc/kubernetes/manifests/kube-apiserver.yaml 中的 --authorization-mode 改为 AlwaysAllow,等待 apiserver 重启后,之前没有权限的 xianyu 用户也能直接 kubectl get nodes。

3.3 认证机制:X509 客户证书实战

K8s 将用户分为普通用户 (由外部系统如 X509 证书管理)和服务账户(K8s 内部管理的用户,供 Pod 访问)。

使用 X509 证书创建普通用户:

  1. 客户端生成私钥和 CSR:

    bash 复制代码
    openssl genrsa -out xianyu.key 2048
    openssl req -new -key xianyu.key -out xianyu.csr -subj '/CN=xianyu/O=kubernetes'

    注意:CN 字段即用户名,O 字段即用户组。

  2. 管理员签发证书:

    bash 复制代码
    openssl x509 -req -in xianyu.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out xianyu.crt -days 1095
  3. 生成 kubeconfig 配置 :使用 kubectl config set-cluster/set-credentials/set-context 命令将证书打包成 config 文件。如果不使用 --embed-certs,config 中将记录证书路径;使用后,证书内容会被直接嵌入 config 中,方便分发。

注意:K8s 没有删除用户的命令。如果要吊销权限,必须删除其绑定的 RBAC 角色,或者将证书加入 CA 黑名单。


四、RBAC 授权模型与企业级实战

K8s 默认启用 RBAC 鉴权模式。核心逻辑是:用户 -> 角色绑定(Binding) -> 角色(Role) -> 权限(Rules)。

4.1 Role 与 ClusterRole 的区别与绑定

  • Role:命名空间级别,只能控制特定 Namespace 内的资源(如 Pod、Service)。
  • ClusterRole:集群级别,控制整个集群范围的资源(如 Node),或者所有 Namespace 下的资源(如 PV)。

绑定方式的灵活性:

  1. RoleBinding 引用 Role:权限仅在被绑定的 Namespace 内生效。
  2. ClusterRoleBinding 引用 ClusterRole:权限在全局生效。
  3. RoleBinding 引用 ClusterRole :权限仅在被绑定的 Namespace 内生效。这意味着,你可以定义一个集群级的 Role,但通过 RoleBinding 限制其只在特定的 Namespace 中使用,这是企业级权限管控的常用手法。

4.2 核心概念:apiGroups 的深坑

在定义权限规则时,必须清楚资源的 apiGroups,否则配置的角色将无法生效。

资源类型 apiVersion apiGroups
Pod、Service、PVC v1 "" (空字符串)
Deployment、StatefulSet apps/v1 "apps"
Job、CronJob batch/v1 "batch"
Role、RoleBinding rbac.authorization.k8s.io/v1 "rbac.authorization.k8s.io"
NetworkPolicy networking.k8s.io/v1 "networking.k8s.io"

常见报错 :如果想让用户查看 Deployment,但在 Role 中写的 apiGroups: [""],用户查询时会报 Forbidden。只有写成 apiGroups: ["apps"] 才能正确匹配。

4.3 实战场景:精细化权限分配

任务 1 :在 auth 命名空间创建角色 pod-reader,具备 get、list、watch 权限。

bash 复制代码
kubectl create role pod-reader --verb=get,list,watch --resource=pods -n auth
kubectl create rolebinding auth-pod-reader --role=pod-reader --user=xianyu -n auth

任务 2:创建自定义集群角色,允许查看所有命名空间的 pod 和 deployment。

bash 复制代码
kubectl create clusterrole cluster-pod-deploy-reader --verb=get,list,watch --resource=pods,deployments.apps
kubectl create clusterrolebinding laoma-cluster-reader --clusterrole=cluster-pod-deploy-reader --user=laoma

任务 3 :使用现有集群角色。将 admin 角色绑定给 xianyu,但仅在 auth 命名空间生效。

bash 复制代码
kubectl create rolebinding xianyu-auth-admin --clusterrole=admin --user=xianyu -n auth

注:虽然 RoleBinding 引用 ClusterRole 看似限定了空间,但实际上这是 K8s 官方推荐的跨空间共享权限规范的做法。


五、服务账户(ServiceAccount)与 Token 演进机制

ServiceAccount(SA)是 Pod 访问 K8s API 的专用账号。每个 Namespace 默认都有一个 default SA。

5.1 Token 挂载机制的演进(1.24 分水岭)

  • 1.24 之前 :创建 Pod 时,K8s 会自动创建一个永久有效的 Secret(包含 Token、ca.crt 和 namespace),并将其挂载到容器的 /var/run/secrets/kubernetes.io/serviceaccount/ 目录下。这种方式的安全风险在于,一旦 Token 泄露,黑客可以永久访问集群。
  • 1.24 及之后 :K8s 默认不再自动创建永久 Secret。Kubelet 在启动 Pod 时,通过 TokenRequest API 申请一个有有效期的短期 Token (默认 1 小时,与 Pod 生命周期绑定,Pod 删除后 Token 失效)。它通过一个名为 kube-api-access-xxx 的 Projected Volume(投射卷)挂载。

Projected Volume 构成:

yaml 复制代码
  volumes:
  - name: kube-api-access-sjffr
    projected:
      sources:
        - serviceAccountToken:
            path: token # 由 TokenRequest API 获取的短期令牌
        - configMap:
            items:
              - key: ca.crt
                path: ca.crt
            name: kube-root-ca.crt # 用于验证 apiserver 身份
        - downwardAPI:
            items:
              - fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
                path: namespace # 当前命名空间名称

5.2 手工生成 Token(新旧兼容)

创建临时 Token(推荐):

bash 复制代码
kubectl create token sa1

创建永久 Token(兼容老系统) :

创建一个带有特殊注解的 Secret:

yaml 复制代码
apiVersion: v1
kind: Secret
metadata:
  name: sa1-secret
  annotations:
    kubernetes.io/service-account.name: sa1
type: kubernetes.io/service-account-token

注意:当关联的 SA 被删除时,该 Secret 也会被自动清理。


六、可视化面板实战:Kuboard 与 Dashboard

6.1 Kuboard v3 部署与纳管

Kuboard 是一款极其优秀的国产 K8s 管理面板,支持多集群纳管和微服务分层展示。

独立容器方式部署(推荐,独立于集群外):

bash 复制代码
mkdir /kuboard-data
nerdctl run -d --name=kuboard \
-p 80:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://10.1.8.30:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /kuboard-data:/data \
eipwork/kuboard:v3

部署完成后访问 http://10.1.8.30:80,默认账号 admin,密码 Kuboard123。进入后,可选择使用 kubeconfig 导入集群。

Static Pod 方式部署(深入集群内) :

执行 kuboard-static-pod.sh 脚本,它会自动在 master 节点生成 static pod 的清单文件,并自动创建 kuboard-admin 和 kuboard-viewer 两个 SA 并绑定相应权限。

6.2 Kubernetes Dashboard 部署与登录

官方 Dashboard 默认权限极其有限,需要手动提升权限。

部署:

bash 复制代码
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml

kubectl apply -f recommended.yaml 

修改 Service 类型为 NodePort:

bash 复制代码
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
# 将 type: ClusterIP 改为 type: NodePort

获取 Token 登录 :

默认的 kubernetes-dashboard SA 只有极低的权限(甚至连 Pod 都看不到)。需要为其绑定 cluster-admin:

bash 复制代码
kubectl create clusterrolebinding kubernetes-dashboard-cluster-admin --clusterrole cluster-admin --serviceaccount kubernetes-dashboard:kubernetes-dashboard

生成 Token:

bash 复制代码
kubectl -n kubernetes-dashboard create token kubernetes-dashboard
相关推荐
Zenova EdgeOS2 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome
Dory_Youth2 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记
fb_123452 小时前
K8s调度实战全景-Pod调度与资源管控
云原生·容器·kubernetes
Dxy12393102162 小时前
Linux 压缩解压相关命令介绍
linux·运维·服务器
eleven_4u2 小时前
QPS如何计算,如何部署架构
java·linux·运维·jvm·中间件
云飞云共享云桌面2 小时前
非标自动化工厂研发部门怎么实现一台服务器带10个SolidWorks设计并发
运维·服务器·人工智能·3d·自动化·电脑·制造
分布式存储与RustFS2 小时前
你的网站备份只存一块盘?把 1Panel 的备份目标换成 RustFS
运维·开源·备份·对象存储·1panel·s3·rustfs
遇见小修修3 小时前
打印机无法连接故障:操作误区汇总与排查教程
运维·服务器
Elastic 中国社区官方博客3 小时前
使用 OpenTelemetry 在 Elastic 中实现 Claude 平台的人工智能 agent 可观测性
大数据·运维·服务器·人工智能·elasticsearch·信息可视化·全文检索