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 访问控制四大阶段
- 传输安全:API Server 默认使用 6443 端口,受 TLS 保护。
- 身份认证(Authentication):校验请求者的身份(如客户端证书、Token)。认证失败返回 401。
- 鉴权(Authorization):确认该用户是否有权限执行该操作。失败返回 403。
- 准入控制(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 证书创建普通用户:
-
客户端生成私钥和 CSR:
bashopenssl genrsa -out xianyu.key 2048 openssl req -new -key xianyu.key -out xianyu.csr -subj '/CN=xianyu/O=kubernetes'注意:
CN字段即用户名,O字段即用户组。 -
管理员签发证书:
bashopenssl x509 -req -in xianyu.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out xianyu.crt -days 1095 -
生成 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)。
绑定方式的灵活性:
- RoleBinding 引用 Role:权限仅在被绑定的 Namespace 内生效。
- ClusterRoleBinding 引用 ClusterRole:权限在全局生效。
- 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