标准K8s与EKS集群支持的授权模式及查询方法
查询Kubernetes集群及Kubelet已启用的授权模式
集群层面(kube-apiserver)的授权模式
Kubernetes集群的核心授权模式由kube-apiserver的--authorization-mode参数决定,没有直接的kubectl命令可以一键返回该列表,但可以通过以下方式查看:
- 查看kube-apiserver Pod的启动参数:
# 先获取kube-apiserver的Pod名称 kubectl get pods -n kube-system | grep kube-apiserver # 查看该Pod的授权模式配置 kubectl exec -n kube-system <kube-apiserver-pod-name> -- ps aux | grep authorization-mode
- 或者通过YAML输出过滤:
kubectl get pods -n kube-system -l component=kube-apiserver -o yaml | grep "authorization-mode"
Kubelet层面的授权模式
每个节点的kubelet可单独配置授权模式(如你提到的--authorization-mode=Node,RBAC),查看方式如下:
- 通过kubectl查看节点的kubelet配置:
kubectl get node <node-name> -o yaml | grep -A3 authorization
- 直接登录节点查看kubelet进程参数(需节点访问权限):
ps aux | grep kubelet | grep authorization-mode
- 若kubelet使用配置文件管理(如
/var/lib/kubelet/config.yaml),查看配置文件:
cat /var/lib/kubelet/config.yaml | grep -A2 authorization
补充说明
Kubernetes支持的授权模式包括:RBAC、Node、ABAC、Webhook、AlwaysAllow、AlwaysDeny。其中Node模式是专为kubelet设计的授权机制,用于控制节点自身的API访问权限;AlwaysAllow/AlwaysDeny属于基础开关式模式,一般仅用于测试场景。
内容的提问来源于stack exchange,提问作者Sumit Murari
相关产品推荐
相关产品推荐

